VB中对文本文件的复杂操作

来源:百度知道 编辑:UC知道 时间:2024/06/26 02:33:19
a.txt的内容格式如下
E 0001000 200906261507 1 0
E 0001234 200906261511 1 0
E 0030000 200906261513 1 0
E 0002340 200906261618 1 0
E 0056000 200906261618 1 0
E 0340000 200906261624 1 0
E 0000234 200906261828 1 0
E 0030000 200906261929 1 0
E 0001234 200906262032 1 0
在txt1中输入30000,(查找的范围是每行的第三个字符到第9个字符间)
txt2中输入 200906261620,点击command1
Option1中显示 E 0030000 200906261513 1 0
Option2中显示 E 0030000 200906261929 1 0
选择Option2后 点击 command2 得如下结果
a.txt 文本内容如下(注意顺序发生变化)
E 0001000 200906261507 1 0
E 0001234 200906261511 1 0
E 0030000 200906261513 1 0
E 0002340 200906261618 1 0
E 0056000 200906261618 1 0
E 0030000 200906261620 1 0
E 0340000 200906261624 1 0
E 0000234 200906261828 1 0
E 0001234 200906262032 1 0
若选择Option1则如现
E 0001000 200906261507 1 0
E 0001234 200906261511 1 0
E 0002340 200906261618 1 0
E 0056000 200906261618 1 0
E 0030000 200906261620 1 0

窗体上的txt1和txt2改成text1、text2

Dim s() As String, n As Integer, fname As String

Private Sub Form_Load()
Command2.Enabled = False
Text1 = "30000"
Text2 = "200906261620"
Option1.Value = True
Option2.Value = False
fname = "f:\a.txt"
End Sub

Private Sub Command1_Click()
Dim i As Integer, k As Integer
Open fname For Input As #1
Do While Not EOF(1)
ReDim Preserve s(0 To n)
Line Input #1, s(n)
s(n) = Trim(s(n))
n = n + 1
Loop
Close #1

For i = 0 To n - 1
If Mid(s(i), 3, 7) = Format(Val(Trim(Text1)), String(7, "0")) Then
If k = 0 Then
Option1.Caption = s(i)
ElseIf k = 1 Then
Option2.Caption = s(i)
Else
MsgBox "找到不止两条!"
End If
k = k + 1
End If
Next
Command2.Enabled = True
End Sub

Private Sub Command2_Click()
Dim tnew As Double, temp As Double