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

📄 quanju.bas

📁 通过PC机的串口和单片机等嵌入式下位机通信
💻 BAS
字号:
Attribute VB_Name = "Quanju"
Public intComPort As Integer          '端口号
Public strComSetting As String        '串口设置
Public intInBufferSize As Long        '接收缓冲区大小
Public intOutBufferSize As Long       '发送缓冲区大小
Public SendMode As Integer            '发送的方式表示
Public End_Flag As Byte               '结束符号


Public ListState(1 To 300) As Integer     '记录的种类表,0时间触发,1事件触发

Public KindCount(1 To 8) As Integer

Public TimeCount As Byte                '时间的总个数
Public ThingCount As Byte
'分别记录分,时,天,星期,月,年,世纪,事件的个数
Public MinCount As Integer
Public HourCount As Integer
Public DayCount As Integer
Public WeekCount As Integer
Public MonCount As Integer
Public YearCount As Integer
Public CenCount As Integer
Public OtherCount As Integer

'排序过程
Public Sub Sort()
Dim Sorted(1 To 300) As String     '已排事件
Dim WillSort(1 To 300) As String   '将要排序的事件
Dim TimeSort(1 To 300) As String   '记录时间格式,判断类型5-26
Dim SortCount As Integer           '已排事件的个数
Dim WillCount As Integer           '未排事件总个数

For i = 1 To 300
  Sorted(i) = ""
  WillSort(i) = ""
  TimeSort(i) = ""
Next i

'各种事件的个数赋初值0
For i = 1 To 8
  KindCount(i) = 0
Next i

SortCount = 0
WillCount = Main.List.ListCount - 1


For i = 1 To WillCount                '循环取值
  WillSort(i) = Main.List.List(i)
Next i

For i = 1 To WillCount
  TimeSort(i) = Mid(Trim(WillSort(i)), 5, 21)  '取得时间格式
Next i

'排序循环
For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 17, 2) = "  " Then
    '分为周期
    KindCount(1) = KindCount(1) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 17, 2) <> "  " And Mid(TimeSort(i), 14, 2) = "  " Then
     '小时为周期
    KindCount(2) = KindCount(2) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i
  
For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 14, 2) <> "  " And Mid(TimeSort(i), 12, 1) = " " And Mid(TimeSort(i), 9, 2) = "  " Then
    '天为周期
    KindCount(3) = KindCount(3) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 12, 1) <> " " Then
    '周为周期
    KindCount(4) = KindCount(4) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 6, 2) = "  " And Mid(TimeSort(i), 9, 2) <> "  " Then
    '月为周期
    KindCount(5) = KindCount(5) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 6, 2) <> "  " And Mid(TimeSort(i), 1, 4) = "    " Then
   '年为周期
    KindCount(6) = KindCount(6) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

For i = 1 To WillCount
  If ListState(i) = 0 And Mid(TimeSort(i), 1, 4) <> "    " Then
    '世纪周期
    KindCount(7) = KindCount(7) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

For i = 1 To WillCount
  If ListState(i) = 1 Then
    '事件
    KindCount(8) = KindCount(8) + 1
    SortCount = SortCount + 1
    Sorted(SortCount) = WillSort(i)
  End If
Next i

'事件属性赋值
For i = 1 To SortCount
  If i <= SortCount - KindCount(8) Then
    ListState(i) = 0
  Else
    ListState(i) = 1
  End If
Next i

'排序
Main.List.Clear
Main.List.List(0) = "序号" + "    触发条件" + "          触发事件"
For i = 1 To SortCount
  Main.List.List(i) = Trim(Str$(i)) + Space(4 - Len(Trim(Str$(i)))) + Mid(Sorted(i), 5)
Next i
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -