7,763
社区成员
发帖
与我相关
我的任务
分享
Dim AA(), BB(), CC(), XX As Integer '你计算后的各行的第四列数据请放在 DD() 的数组中,这个你自己处理
Open "C:\ABC\123.txt" For Input As #1 '读取123.txt文本文件的数据
If Not EOF(1) Then '判断是不是到达文件末尾
XX = XX + 1 '检测有多少行
End If
Close #1
ReDim AA(1 To XX), BB(1 To XX), CC(1 To XX)
XX = 0 'XX变量初始化
Open "C:\ABC\123.txt" For Input As #1 '读取123.txt文本文件的数据
If Not EOF(1) Then '判断是不是到达文件末尾
XX = XX + 1
Input #1, AA(XX), BB(XX), CC(XX) '读取数据到数组
End If
Close #1 '读取后关闭文件
'----------------------------------------------
Kill "C:\ABC\123.txt" '删除C:\ABC\123.txt这个文本文件,这个必须要删除,不然无法重新写入数据
'------------------------------------------------
Open "C:\ABC\123.txt" For Append As #1 '创建文本文件并写入数据
For I = 1 To XX '循环重新写入数据
Write #1, AA(I), BB(I), CC(I), DD(I) '数组变量 DD(I))是你计算后的各行的数据
Next I '
Close #1 '写入完成后关闭
Open "C:\ABC\123.txt" For Input As #1 '读取123.txt文本文件的数据
If Not EOF(1) Then '判断是不是到达文件末尾
Input #1, AAX, BBX, CCX, DDX '读取数据
Text1.Text = Text1.Text & AAX & Space(5) & BBX & Space(5) & CCX & Space(5) & DDX & vbCrLf '你看看,数据是不是添加到第四列了?
End If
Close #1 '读取后关闭文件
Open "C:\ABC\123.txt" For Append As #1 '向123.txt文本文件追加数据
Write #1, AA, BB, CC 'AA、BB、CC是追加的数据变量,如果数据项目多,再增加数据变量,例如 DD、EE、FF 等等
Close #1 '追加后关闭
Open "C:\ABC\123.txt" For Input As #1 '读取123.txt文本文件的数据
If Not EOF(1) Then '判断是不是到达文件末尾
Input #1, AA, BB, CC '读取数据
Text1.Text = Text1.Text & AA & Space(5) & BB & Space(5) & CC & vbCrLf '将读取的数据放在文本框中
End If
Close #1 '读取后关闭文件
非常简单。不清楚你计算后的变量是那个,我用AA、BB、CC变量代替,你可以替换成你计算后的变量,另外 txt 文件的路径+文件名+扩展名 替换成你的路径+文件名+扩展名就可以了。14:04:16 31.0042 121.19409
14:04:57 31.004078 121.191348 2.74471273542209E-03
14:05:08 31.00401 121.190088 1.26183358649426E-03
14:05:25 31.0039 121.187448 2.64229067288166E-03
14:05:28 31.003878 121.18694 5.08476154796269E-04
14:05:39 31.00384 121.18541 1.53047182267677E-03
Private Sub Form_Click()
Dim aData() As String
Dim objReg As RegExp
Dim strText As String
Dim x1#, y1 As Double
Dim x2#, y2 As Double
Dim dDist As Double
Dim p&, u As Long
u = 15 ' “数据缓冲”数组初始大小。
' 如果数据多,就应该设置一个较大的值。
ReDim aData(u)
p = -1
' 读取原始数据
Open "E:\Temp\data.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strText
If ("" = strText) Then Exit Do
p = p + 1
If (p > u) Then
u = u + 8 ' 每次增加8条
ReDim Preserve aData(u)
End If
aData(p) = strText ' 记录原始数据
Loop
Close #1
' 重新改写文件内容,增加“距离”数据
Set objReg = New RegExp
objReg.Pattern = "[\d\.]+"
objReg.Global = True
objReg.IgnoreCase = True
'objReg.MultiLine = True
strText = aData(0)
x1 = objReg.Execute(strText)(3) 'x
y1 = objReg.Execute(strText)(4) 'x
Open "E:\Temp\data.txt" For Output As #1
Print strText ' 输出在窗口上
Print #1, strText ' 输出到文件
For u = 1 To p
strText = aData(u)
x2 = objReg.Execute(strText)(3) 'x
y2 = objReg.Execute(strText)(4) 'y
x1 = x1 - x2
y1 = y1 - y2
dDist = Sqr(x1 * x1 + y1 * y1)
Print strText, dDist ' 输出在窗口上
Print #1, strText, dDist ' 输出到文件
x1 = x2: y1 = y2
Next
Close #1
End Sub