⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmoutputanalog.frm

📁 对于符合国际标准COMTRADE格式的数据进行转换处理
💻 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 + -