怎样从一个文本文件读取指定数据写入到另一个文本文件,谢谢!
设有文件a.txt,其中存放了两行数据,数据用逗号分隔,现在要读取第一行的奇数位置的数据写入到另一个文本文件(b.txt)的第一行,类似地,把第二行的奇数位置的数据写入到第二行。
比如:
文件a.txt如下:
1,2,3,4,5
6,7,8,9,10
操作完成后,文件b.txt应为
1,3,5
6,8,10
因为我没有用过vb,希望各位能给出完整一点的代码,谢谢!
问题点数:100、回复次数:7Top
1 楼higaer()回复于 2003-12-04 09:55:53 得分 0
因为比较急,自己顶一把,请勿见怪!Top
2 楼feilong215(小飛)回复于 2003-12-04 10:16:33 得分 10
幫你up一下Top
3 楼of123()回复于 2003-12-04 10:27:41 得分 40
dim str1, str2 as string
dim arrTmp() as string
dim i as integer
open "a.txt" for input as #1
line input #1, str1
line input #1, str2
close #1
arrTmp = split(str1, ",")
str1=""
for i =0 to Ubound(arrTmp) step 2
str1 = str1 & srrTmp(i) & ","
Next i
str1 = left(str1, len(str1)-1)
arrTmp = split(str2, ",")
str2=""
for i =0 to Ubound(arrTmp) step 2
str2 = str2 & srrTmp(i) & ","
Next i
str2 = left(str2, len(str2)-1)
open "b.txt" for output as #1
print #1, str1
print #1, str2
close #1Top
4 楼SoHo_Andy(冰)回复于 2003-12-04 10:31:50 得分 50
呵呵,终于搞定了,好久没做啦
调试通过,注意","为英文输入
Sub 提取奇数位数据(strSourceFile As String, strTargetFile As String)
Dim filenum As Integer
Dim fileContents As String
Dim fileInfo() As String
Dim i As Integer
Dim j As Integer
Dim tmpDemData As String
filenum = FreeFile
Open strSourceFile For Binary As #filenum
fileContents = Space(LOF(filenum))
Get #filenum, , fileContents
Close filenum
fileInfo = Split(fileContents, vbCrLf)
'取出源文件行数,按照回车换行来分隔成数组
filenum = FreeFile
tmpDemData = ""
If Dir(strTargetFile, vbNormal) <> "" Then
Kill strTargetFile
End If
Dim Filestr() As String
Open strTargetFile For Append As #filenum
'循环每一行
For i = 0 To UBound(fileInfo) - 1
Filestr = Split(Trim(fileInfo(i)), ",") '按照逗号分隔每一行的数据
tmpDemData = ""
For j = 0 To UBound(Filestr)
'判断是否为奇数位
If (j Mod 2) = 0 Then
tmpDemData = tmpDemData & Filestr(j)
ElseIf j <> 0 And j <> UBound(Filestr) Then
tmpDemData = tmpDemData & ","
End If
Next
'保存一行如目标文件
Print #filenum, tmpDemData
Next
Close #filenum
MsgBox "完毕"
End Sub
Private Sub Command1_Click()
提取奇数位数据 "d:\aa.txt", "d:\bb.txt"
End Sub
结贴吧
Top
5 楼higaer()回复于 2003-12-04 10:34:12 得分 0
好,谢谢了!Top
6 楼szyhy810518()()回复于 2003-12-04 10:36:16 得分 0
Dim strData As String
Dim arrStr() As String
Dim iIndex As Integer
Open "a.txt" For Input As #1
Open "b.txt" For Binary As #2
Do While Not EOF(1)
Line Input #1, strData
arrStr = Split(strData, ",")
For iIndex = 0 To UBound(arrStr) Step 2
Put #2, , arrStr(iIndex)
If iIndex + 2 <= UBound(arrStr) Then
Put #2, , ","
End If
Next
Put #2, , vbCrLf
Loop
Close #2
Close #1
Top
7 楼higaer()回复于 2003-12-04 10:37:46 得分 0
还有人跟进啊,我想加分,怎么加不了
最大只能给100么,真是奇怪的限制~Top




