*很久前VB寫的一個程序,供參考
*只簡單的從COM口讀取電話記錄,
*生成文本文件
Option Explicit
' 終止讀取通訊埠的指標
Dim bstop As Boolean
' 讀取通訊埠的暫存區
Dim InString As String
Dim tmpinstr As String
'聲明一個檔系統物件變數
Dim fso
Private Sub Command1_Click()
'text1是否有資料的指標
Dim lbltag As Boolean
'上一條記錄
Dim strprevious As String
' 假如使用者未按下「停止測試」鈕(bStop = False)
Do While Not bstop
If MSComm1.InBufferCount Then
' 通訊埠中假如有資料的話, 則讀取進來
InString = InString & MSComm1.Input
' 如果資料中有 Chr(13) 和 Chr(10) 的話, 則顯示出來
If InStr(InString, vbCrLf) Then
If Not lbltag Then
lbltag = Not lbltag
Label1.Caption = " 日 期 時 間 分機 外線 撥打號碼 計 時 帳號 TX/RX "
End If
text2.Text = text2.Text & InString
text1.Text = InString & text1.Text
InString = ""
DoEvents
End If
End If
DoEvents
Loop
End Sub
Private Sub Command2_Click()
' 按下鈕時, 把 bStop 設為True
' 如此程式才會停止等待(或讀取)通訊埠所收到的資料
bstop = True
Label1.Caption = ""
Command1.Enabled = True
Command2.Enabled = False
MSComm1.PortOpen = False
End Sub
Private Sub Command3_Click()
Call DataSaving
End Sub
Private Sub Command4_Click()
'Call dataInput
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
bstop = True
'把通訊埠關閉 , 才不會影響其他程式的使用通訊埠
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End
End Sub
'將串列讀入的資料寫入一個文字檔案
Private Sub DataSaving()
Dim fl
Dim num As String
Dim dt As Date
Dim count '欲存檔的文字檔案序號
Dim counta '現有文檔的下一個序號
Dim fname As String '存檔的檔案名
Const forWriting = 2
Const forReading = 1
On Error GoTo errhandler:
'查找e:\tellist目錄,沒有的話,則建立一個
If Not fso.FolderExists("e:\tellist") Then
fso.CreateFolder "e:\tellist"
End If
'將可用的下一個文檔序號取出
If fso.FileExists("E:\telList\counter.txt") Then
Set fl = fso.OpenTextFile("E:\telList\counter.txt", forReading, True)
num = Trim(fl.ReadLine)
dt = CDate(Left(num, 8))
count = CInt(Right(num, 3))
If Date > dt Then
count = 1
End If
fl.Close
Else
count = 1
dt = Date
End If