📄 frmoutputanalog.frm
字号:
VERSION 5.00
Begin VB.Form frmOutputAnalog
BorderStyle = 3 'Fixed Dialog
Caption = "输出模拟量数据"
ClientHeight = 5148
ClientLeft = 2760
ClientTop = 3756
ClientWidth = 9660
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Icon = "frmOutputAnalog.frx":0000
LinkTopic = "Form1"
LockControls = -1 'True
MaxButton = 0 'False
MDIChild = -1 'True
ScaleHeight = 5148
ScaleWidth = 9660
ShowInTaskbar = 0 'False
Begin VB.TextBox txtEndAcqSeg
Alignment = 2 'Center
Height = 264
Left = 7572
MaxLength = 3
TabIndex = 9
Text = "125"
Top = 4776
Width = 444
End
Begin VB.Frame Frame3
Caption = "共xx个不同频率数据段"
ForeColor = &H80000002&
Height = 4272
Left = 7164
TabIndex = 17
Top = 60
Width = 2436
Begin VB.ListBox lstAcqSeg
Height = 4008
Left = 60
TabIndex = 2
Top = 204
Width = 2304
End
End
Begin VB.ComboBox cmbFileType
Enabled = 0 'False
Height = 276
ItemData = "frmOutputAnalog.frx":014A
Left = 5340
List = "frmOutputAnalog.frx":015A
Style = 2 'Dropdown List
TabIndex = 8
Top = 4776
Width = 1188
End
Begin VB.Frame Frame2
Caption = "模拟量通道列表"
ForeColor = &H80000002&
Height = 4272
Left = 3840
TabIndex = 14
Top = 60
Width = 3360
Begin VB.ListBox lstAnalogChnsSelected
Height = 4008
Left = 72
TabIndex = 1
Top = 204
Width = 3216
End
End
Begin VB.TextBox txtOutFileName
Height = 264
Left = 840
TabIndex = 7
Top = 4776
Width = 4428
End
Begin VB.CommandButton cmdCancel
Caption = "&C 取消"
Height = 336
Left = 8880
TabIndex = 11
Top = 4740
Width = 672
End
Begin VB.CommandButton cmdOutput
Caption = "&O 输出"
Height = 336
Left = 8112
TabIndex = 10
Top = 4740
Width = 672
End
Begin VB.Frame Frame1
Caption = "模拟量通道列表"
ForeColor = &H80000002&
Height = 4272
Left = 48
TabIndex = 12
Top = 60
Width = 3360
Begin VB.ListBox lstAnalogChns
Height = 4008
Left = 72
TabIndex = 0
Top = 204
Width = 3216
End
End
Begin VB.Frame Frame4
Height = 468
Left = 48
TabIndex = 19
Top = 4224
Width = 9552
Begin VB.CheckBox chkOutputAcqSegInfor
Caption = "输出不同采样频率的数据段信息"
Height = 252
Left = 1868
TabIndex = 4
Top = 156
Value = 1 'Checked
Width = 2868
End
Begin VB.CheckBox chkOutputSwitchDefInfor
Caption = "输出开关量通道定义信息"
Height = 252
Left = 7188
TabIndex = 6
Top = 156
Width = 2292
End
Begin VB.CheckBox chkOutputAnalogDefInfor
Caption = "输出模拟量通道定义信息"
Height = 252
Left = 4792
TabIndex = 5
Top = 156
Value = 1 'Checked
Width = 2340
End
Begin VB.CheckBox chkOutputCfgInfor
Caption = "输出配置文件信息"
Height = 252
Left = 72
TabIndex = 3
Top = 156
Value = 1 'Checked
Width = 1740
End
End
Begin VB.Label Label4
AutoSize = -1 'True
Caption = "结束数据段"
Height = 180
Left = 6624
TabIndex = 18
Top = 4824
Width = 900
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "选择"
ForeColor = &H8000000D&
Height = 180
Left = 3456
TabIndex = 16
Top = 252
Width = 360
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "放弃"
ForeColor = &H8000000D&
Height = 180
Left = 3456
TabIndex = 15
Top = 2256
Width = 360
End
Begin VB.Line Line6
BorderColor = &H80000005&
X1 = 3240
X2 = 3876
Y1 = 4320
Y2 = 4320
End
Begin VB.Line Line5
BorderColor = &H80000003&
X1 = 3276
X2 = 3912
Y1 = 4308
Y2 = 4308
End
Begin VB.Line Line4
BorderColor = &H80000005&
X1 = 3228
X2 = 3864
Y1 = 156
Y2 = 156
End
Begin VB.Line Line3
BorderColor = &H80000003&
X1 = 3264
X2 = 3900
Y1 = 144
Y2 = 144
End
Begin VB.Line Line2
BorderColor = &H80000005&
X1 = 3216
X2 = 3852
Y1 = 2196
Y2 = 2196
End
Begin VB.Line Line1
BorderColor = &H80000003&
X1 = 3252
X2 = 3888
Y1 = 2184
Y2 = 2184
End
Begin VB.Image imgDeselect
Height = 384
Left = 3444
Picture = "frmOutputAnalog.frx":0186
ToolTipText = "放弃所有通道"
Top = 3336
Width = 384
End
Begin VB.Image imgDeselect1
Height = 384
Left = 3444
Picture = "frmOutputAnalog.frx":05C8
ToolTipText = "放弃当前通道"
Top = 2796
Width = 384
End
Begin VB.Image imgSelectAll
Height = 384
Left = 3444
Picture = "frmOutputAnalog.frx":0A0A
ToolTipText = "选择所有通道"
Top = 1356
Width = 384
End
Begin VB.Image imgSelect1
Appearance = 0 'Flat
Height = 384
Left = 3432
Picture = "frmOutputAnalog.frx":0E4C
ToolTipText = "选择当前通道"
Top = 804
Width = 384
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "输出文件"
Height = 180
Left = 60
TabIndex = 13
Top = 4812
Width = 720
End
End
Attribute VB_Name = "frmOutputAnalog"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim iAnalogChnSelected() As Integer ' 被选择的通道对应于待选通道列表的序号,用于放弃选择
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOutput_Click()
If lstAnalogChnsSelected.ListCount = 0 Then
MsgBox "没有模拟量通道被选中", vbInformation + vbOKOnly, "操作提示"
Exit Sub
End If
Dim iMousePointer As Integer
iMousePointer = mdiMain.MousePointer ' 保存鼠标形状
mdiMain.MousePointer = vbHourglass ' 11 Hourglass (wait).
Dim i As Integer
For i = 1 To txtEndAcqSeg.Text
rComtradeAcqSegInfor(i).blSelected = True ' 输出否
Next i
OutputAnalogData Trim$(txtOutFileName.Text), cmbFileType.ListIndex ' 输出模拟量数据
mdiMain.MousePointer = iMousePointer ' 恢复鼠标形状
End Sub
Private Sub Form_Load()
txtOutFileName.Text = sGetExtOrNameOfFile(rComtradeFileHeadInfor.sCfgFileName, False) + "_AN.TXT" ' 当前数据文件名称
cmbFileType.ListIndex = 0
Dim chns As Integer
ReDim iAnalogChnSelected(1 To rComtradeFileHeadInfor.lTotalAnalogChs) ' 被选择的通道对应于待选通道列表的序号,用于放弃选择
lstAnalogChns.Clear
' 模拟量通道总数
For chns = 1 To rComtradeFileHeadInfor.lTotalAnalogChs
lstAnalogChns.AddItem Trim$(rComtradeAnalogInfor(chns).sChannelName) + "(通道:" + Format(rComtradeAnalogInfor(chns).iChannelID, "0") + ",相序:" + rComtradeAnalogInfor(chns).sPhaseName + ")"
rComtradeAnalogInfor(chns).blSelected = False ' 默认为否
iAnalogChnSelected(chns) = 0 ' 被选择的通道对应于待选通道列表的序号,用于放弃选择:无对应
Next chns
' 数据段列表
Frame3.Caption = "共" + Format(rComtradeFileHeadInfor.iNumberOfAcqSeg, "0") + "个不同采样频率数据段"
txtEndAcqSeg.Text = rComtradeFileHeadInfor.iNumberOfAcqSeg ' 输出结束数据段
lstAcqSeg.Clear
For chns = 1 To rComtradeFileHeadInfor.iNumberOfAcqSeg
lstAcqSeg.AddItem FormatWithLeftSpace(chns, "0", 2) + Space(2) + FormatWithLeftSpace(rComtradeAcqSegInfor(chns).fPointsPerSec, "0.000", 10) + Space(2) + FormatWithLeftSpace(rComtradeAcqSegInfor(chns).lEndPointOffset, "0", 6)
rComtradeAcqSegInfor(chns).blSelected = False ' 输出否
Next chns
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim chns As Integer
For chns = 1 To rComtradeFileHeadInfor.lTotalAnalogChs
rComtradeAnalogInfor(chns).blSelected = False ' 默认为否
Next chns
For chns = 1 To rComtradeFileHeadInfor.iNumberOfAcqSeg
rComtradeAcqSegInfor(chns).blSelected = False ' 输出否
Next chns
End Sub
Private Sub imgDeselect_Click()
lstAnalogChnsSelected.Clear ' 放弃所有通道
' 清除选择记录
Dim chns As Integer
For chns = 1 To rComtradeFileHeadInfor.lTotalAnalogChs
rComtradeAnalogInfor(chns).blSelected = False
iAnalogChnSelected(chns) = 0 ' 记录对应关系:无对应
Next chns
End Sub
Private Sub imgDeselect1_Click()
If lstAnalogChnsSelected.ListIndex < 0 Then
MsgBox "请先选择右边列表框中对应的通道", vbInformation + vbOKOnly, "操作提示"
Exit Sub
End If
rComtradeAnalogInfor(iAnalogChnSelected(lstAnalogChnsSelected.ListIndex + 1)).blSelected = False ' 放弃对应通道的选择
' 删除指定的通道对应单元,方法:前移后面的单元,覆盖指定单元
Dim chns As Integer
For chns = 1 To lstAnalogChnsSelected.ListCount - 1
If chns >= lstAnalogChnsSelected.ListIndex + 1 Then
iAnalogChnSelected(chns) = iAnalogChnSelected(chns + 1) ' 被选择的通道对应于待选通道列表的序号,用于放弃选择
End If
Next chns
iAnalogChnSelected(lstAnalogChnsSelected.ListCount) = 0 ' 无对应
' 放弃当前通道
lstAnalogChnsSelected.RemoveItem lstAnalogChnsSelected.ListIndex
End Sub
Private Sub imgSelect1_Click()
If lstAnalogChns.ListIndex < 0 Then
MsgBox "请先选择左边列表框中对应的通道", vbInformation + vbOKOnly, "操作提示"
Exit Sub
End If
' 检查重复通道
If rComtradeAnalogInfor(lstAnalogChns.ListIndex + 1).blSelected = True Then Exit Sub ' 该记录已被选择
' 增加
rComtradeAnalogInfor(lstAnalogChns.ListIndex + 1).blSelected = True ' 该记录被选择
lstAnalogChnsSelected.AddItem lstAnalogChns.Text
iAnalogChnSelected(lstAnalogChnsSelected.ListCount) = lstAnalogChns.ListIndex + 1 ' 记录对应关系
End Sub
Private Sub imgSelectAll_Click()
Dim i As Integer
' 选择所有通道
lstAnalogChnsSelected.Clear
For i = 1 To lstAnalogChns.ListCount
rComtradeAnalogInfor(i).blSelected = True ' 该记录被选择
lstAnalogChnsSelected.AddItem lstAnalogChns.List(i - 1)
iAnalogChnSelected(i) = i ' 记录对应关系
Next i
End Sub
Private Sub lstAnalogChns_DblClick()
imgSelect1_Click
End Sub
Private Sub lstAnalogChnsSelected_DblClick()
imgDeselect1_Click
End Sub
Private Sub txtEndAcqSeg_KeyPress(KeyAscii As Integer)
' 只允许0-9和backsapce
If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 Then
KeyAscii = 0
End If
End Sub
Private Sub txtEndAcqSeg_LostFocus()
If Val(txtEndAcqSeg.Text) < 1 Then
txtEndAcqSeg.Text = 1
ElseIf Val(txtEndAcqSeg.Text) > rComtradeFileHeadInfor.iNumberOfAcqSeg Then
txtEndAcqSeg.Text = rComtradeFileHeadInfor.iNumberOfAcqSeg
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -