txt读取数据问题
各位,我是VB新手,属于什么都不行。现在对从txt中读取数据并显示存在一定的困扰,请各位大侠帮忙,非常感谢!
问题如下:
txt文档数据格式非常有规律
S20120119 132559 070.19D
S20120119 132609 000.03D
S20120119 132619 000.02D
S20120119 132629 000.02D
。。。
数据内容很多行且为不定维数。
想将每行的除S外前8为即“20120119” 提取并放入数组MDate()独,每行的“132559”提取放入数组MTime(),
每行的“070.19”放入数组Data1()中。
最后将MDate MTime Data1放入不同的Text.text中。
我的程序:
Public Sub CmdRead_Click()
Dim TextString As String
Dim StrArray() As String
Dim i As Long
i = 0
Open "C:\Documents and Settings\Administrator\桌面\123.txt" For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, TextString ' 读入一行数据并将其赋予某变量。
StrArray = Split(TextString, " ")
Text1(0).Text = StrArray(0)
Text1(1).Text = StrArray(1)
Text1(2).Text = StrArray(2)
i = i + 1
Loop
Close #1 ' 关闭文件。
End Sub
各位帮忙指点下一下几个困扰:
1:为何调试结果只显示txt文档中最后一行数据
2:我如何去除没行的S和D
3:我怎么实现在对应的text中显示相应提取的信息
请各位高手解答下!
[解决办法]
Private Sub Command1_Click()Text1(0).MultiLine = TrueText1(1).MultiLine = TrueText1(2).MultiLine = TrueEnd SubPublic Sub CmdRead_Click() Dim MDate() As String Dim MTime() As String Dim Data1() As String Dim StrArray() As String Dim i As Long i = 0 Open "D:\123.txt" For Input As #1 ' 打开文件。 Do While Not EOF(1) ' 循环至文件尾。 Line Input #1, TextString ' 读入一行数据并将其赋予某变量。 StrArray = Split(TextString, " ") ReDim Preserve MDate(i), MTime(i), Data1(i) MDate(i) = Mid(StrArray(0), 2) MTime(i) = StrArray(1) Data1(i) = Val(StrArray(2)) i = i + 1 Loop Close #1 ' 关闭文件。 Text1(0).Text = Join(MDate) Text1(1).Text = Join(MTime) Text1(2).Text = Join(Data1)End Sub
[解决办法]
1,循环过程中,每行都有经过显示的逻辑,循环结束后,肯定只有显示最后一行,如果循环中加入断点,则可以看到每行的数据。
2,
使用下列语句去除每行头尾的的s和d
if left(TextString,1)="S" then TextString=mid(TextString,2)
if right(TextString,1)="D" then TextString=left(TextString,len(TextString)-1)
3,
显然,这个使用中使用textbox控件不是很合适的,如果确实要用textbox,则应该使用动态加载,为每行的数据创建一组TextBox控件,用于分别显示每一行
建议使用MSHFlexGrid控件,则可以为每个数据行提供一显示行
[解决办法]
?CDate(Format("20120207","####-##-##"))
2012-02-07
?CDate(Format("143758","##:##:##"))
14:37:58
[解决办法]