回复 2楼 风吹过b
您好!我利用FileSystemObject可以直接读取该.log文件安行读取
可是我遇到问题是:
我想把.log文件的内容:
<RLCFP:CELL=ALL;
CELL CONFIGURATION FREQUENCY DATA
CELL
D088041
CHGR
SCTYPE
SDCCH
SDCCHAC
TN
CBCH
HSN
HOP
DCHNO
0
3
0
1
NO
56
ON
512
3
551
5
557
7
1
0
0
2
NO
16
OFF
548
整理为如下:
BSC
CELL
CHGR
SCTYPE
SDCCH
SDCCHAC
TN
CBCH
HSN
HOP
DCHNO
TABS33
D088041
0
3
0
1 3 5 7
NO
56
ON
512 551 557
TABS33
D088041
1
0
0
2
NO
16
OFF
548
当读到第一行:( 0
3
0
1
NO
56
ON
512
)是长度和第二行的字符串的长度不一致,而且只能用空格把该行字符串拆分
程序如下:
Private Sub cddd_Click()
Dim a() As String
Dim filemanyaddress, files, strfilename, i, j, fn, ln
Dim strtemp As String, MyStr As String, MyCell As String, xChar As String
Dim frArray() As String, temp(5) As String
Dim fso As Object
Dim inputFile As Object
With CommonDialog1
.DialogTitle = "打开"
.CancelError = False
.Filter = "all log (*.log)|*.*"
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
filemanyaddress = .FileName
End With
files = Split(filemanyaddress, Chr(0))
ReDim a(UBound(files))
For i = 1 To UBound(files)
a(i) = files(0) & "\" & files(i)
Next i
'
--------------------------------------------------------------------------------------------------------
For fn = 1 To UBound(a)
Set fso = CreateObject("Scripting.FileSystemObject")
Set inputFile = fso.OpenTextFile(a(fn))
Do While Not inputFile.atEndOfStream
MyStr = inputFile.readLine()
Select Case MyStr
'
--------------------------------------------------------------------------------------------------------
Case "<RLCFP:CELL=ALL;"
Do While Not inputFile.atEndOfStream
MyStr = inputFile.readLine()
MsgBox (MyStr)
If MyStr = "END" Then Exit Sub
If MyStr = "CELL" Then temp(0) = inputFile.readLine()
If MyStr = "CHGR
SCTYPE
SDCCH
SDCCHAC
TN
CBCH
HSN
HOP
DCHNO" Then
Do While Not inputFile.atEndOfStream
MyStr = inputFile.readLine()
If Len(MyStr) = 0 Then Exit Do
If MyStr = "END" Or MyStr = "FAULT INTERRUPT" Then Exit Sub
For j = 1 To Len(MyStr)
xChar = Mid(MyStr, j, 1)
If Asc(xChar) <> 10 Then
MyCell = MyCell & vbCrLf & xChar
End If
Next
MsgBox (MyCell)
frArray = Split(MyCell, vbCrLf)
Loop
End If
Loop
Case "<RLNRP:CELL=ALL"
Case "<RLDEP:CELL=ALL"
End Select
Loop
Next fn
End Sub
请帮帮看看,该怎样解决?