VB中读取文本文件中的每一行,处理后写入另一个文本文件
1:vb中读取一个文本文件2:将每一行字符“name”后的所有内容运行某个字符转换函数(现成存在在,架设为函数abc)3:将每一行原来的内容+字符“name”后经过函数转...
1:vb中读取一个文本文件
2:将每一行字符“name”后的所有内容运行某个字符转换函数(现成存在在,架设为函数abc)
3:将每一行原来的内容+字符“name”后经过函数转换好的内容写入另一个文本文件
4: 每个文本文件大约有1万行左右
如果该行中没有name需要跳过该行
主要是文件比较大,都是1万行以上的 展开
2:将每一行字符“name”后的所有内容运行某个字符转换函数(现成存在在,架设为函数abc)
3:将每一行原来的内容+字符“name”后经过函数转换好的内容写入另一个文本文件
4: 每个文本文件大约有1万行左右
如果该行中没有name需要跳过该行
主要是文件比较大,都是1万行以上的 展开
展开全部
dim op() as string,temp1 as string,temp as string,i as long
open 文件路径1 for input as #1
open 文件路径2 for output as #2
do while not eof(1)
i=i+1
line input #1,temp'按行读取
temp1=temp
op=split(temp,"name")'将读取的行按name拆分,name后的写入数组op
if ubound(op)>0 then'该行存在name
temp=op(ubound(op))'取出name后的字符串
temp=abc(temp)''你的处理函数
print #2,temp1 & temp
label1.caption="已完成" & i & "行"'加个label显示进度
doevents'行太多了,防止程序假死
loop
close #2
close #1
open 文件路径1 for input as #1
open 文件路径2 for output as #2
do while not eof(1)
i=i+1
line input #1,temp'按行读取
temp1=temp
op=split(temp,"name")'将读取的行按name拆分,name后的写入数组op
if ubound(op)>0 then'该行存在name
temp=op(ubound(op))'取出name后的字符串
temp=abc(temp)''你的处理函数
print #2,temp1 & temp
label1.caption="已完成" & i & "行"'加个label显示进度
doevents'行太多了,防止程序假死
loop
close #2
close #1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-05-25
展开全部
Private Sub Command1_Click()
Open App.Path + "\1.txt" For Input As #1
Open App.Path + "\2.txt" For Binary As #2
Do While Not EOF(1)
Dim tmp, tmp2 As String
Dim l As Long
Line Input #1, tmp
l = InStr(1, tmp, "name")
tmp2 = Mid(tmp, 1, l - 1) & "name" & 你的函数ABC(Mid(tmp, l + 4)) & vbCrLf
Put #2, , tmp2
Doevents '防程序卡死
Loop
Close #1
Close #2
End Sub
Open App.Path + "\1.txt" For Input As #1
Open App.Path + "\2.txt" For Binary As #2
Do While Not EOF(1)
Dim tmp, tmp2 As String
Dim l As Long
Line Input #1, tmp
l = InStr(1, tmp, "name")
tmp2 = Mid(tmp, 1, l - 1) & "name" & 你的函数ABC(Mid(tmp, l + 4)) & vbCrLf
Put #2, , tmp2
Doevents '防程序卡死
Loop
Close #1
Close #2
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Option Base 1
Private Sub Form_Click()
Dim a(100000) As String‘估计文本中的字符数,你要一万,我这里设置的是十万
Dim c As Integer
Open "d:\abc.txt" For Input As #1’打开文件开始读取数据
Do While Not EOF(1)‘知道文本的最后一个字符
c = c + 1
Input #1, a(c)
Loop
Close #1
Open "d:\zzz.txt" For Output As #2’打开要写入的文件
For i = 1 To c‘循环写入
Write #2, a(i)
Next i
Close #2
End Sub
测试有效
Private Sub Form_Click()
Dim a(100000) As String‘估计文本中的字符数,你要一万,我这里设置的是十万
Dim c As Integer
Open "d:\abc.txt" For Input As #1’打开文件开始读取数据
Do While Not EOF(1)‘知道文本的最后一个字符
c = c + 1
Input #1, a(c)
Loop
Close #1
Open "d:\zzz.txt" For Output As #2’打开要写入的文件
For i = 1 To c‘循环写入
Write #2, a(i)
Next i
Close #2
End Sub
测试有效
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是可以写,不过处理10000行。。。估计没效率方法
期待高手我也学习学习…………
Private Sub Command1_Click()
Open App.Path + "\1.txt" For Input As #1
Open App.Path + "\2.txt" For Binary As #2
Do While Not EOF(1)
Dim tmp, tmp2 As String
Dim l As Long
Line Input #1, tmp
l = InStr(1, tmp, "name")
tmp2 = Mid(tmp, 1, l - 1) & "name" & 你的函数ABC(Mid(tmp, l + 4)) & vbCrLf
Put #2, , tmp2
Doevents '防程序卡死
Loop
Close #1
Close #2
End Sub
期待高手我也学习学习…………
Private Sub Command1_Click()
Open App.Path + "\1.txt" For Input As #1
Open App.Path + "\2.txt" For Binary As #2
Do While Not EOF(1)
Dim tmp, tmp2 As String
Dim l As Long
Line Input #1, tmp
l = InStr(1, tmp, "name")
tmp2 = Mid(tmp, 1, l - 1) & "name" & 你的函数ABC(Mid(tmp, l + 4)) & vbCrLf
Put #2, , tmp2
Doevents '防程序卡死
Loop
Close #1
Close #2
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实你的问题可以换个思路来解决啊,为什么要写个新的文件了,你可以把你的文本文件装载到文本框,然后利用文本查找和文本替换的方法来修改文本,然后将结果写成文件就可以啦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询