vbs解决处理TXT文本数据相关问题实现代码
程序员文章站
2022-04-10 08:19:09
有个小问题,如下: 现有文本文件1.txt,内容如下: 数值_1出现频度12647 数值_2出现频度10000 数值_3出现频度12608 数值_4出现频度8712 数值_...
有个小问题,如下:
现有文本文件1.txt,内容如下:
数值_1出现频度12647
数值_2出现频度10000
数值_3出现频度12608
数值_4出现频度8712
数值_5出现频度10658
数值_6出现频度8472
数值_7出现频度11232
数值_8出现频度8648
数值_9出现频度9264
数值_10出现频度7192
数值_11出现频度7192
。。。。
大概有100行
要求把里面每行的数值放到变量中,然后输出成文本文件 2.txt
举例: 把第一行的12674,放到变量a1中
把第二行的10000,放到变量a2中
把第三行的12608,放到变量a2中
….直到最后一行
最后输出成“2.txt” 文本文件的内容为:
a1 = 12647
a2 = 10000
a3 = 12608
a4 = 8712
….
a11 = 7192
希望能能够找到相关代码,并且是能在windows下运行的!!找呀找呀找呀。。
实现代码如下:
vb code:
set fso = createobject("scripting.filesystemobject")
set file=fso.opentextfile("1.txt")
ts = file.readall
file.close
set fil = fso.createtextfile("2.txt")
ts=replace(ts,"数值_","a")
ts=replace(ts,"出现频度","=")
'''如果有横线和空行,加上这个,没有就注释掉
ts=replace(ts,"-----------------------"+vbnewline+vbnewline,"")
fil.write ts
fil.close
msgbox "处理完成"上面的代码是把1.txt直接改成了2.txt,中间变量a1~a100省去了,如果还需要中间变量做其它用途的话,可以读取2.txt内容并赋值,代码如下:
vbscript code:
set fso = createobject("scripting.filesystemobject")
set ts = fso.opentextfile("2.txt")
i=0
do while ts.atendofstream=false
str = ts.readline
execute str '执行赋值
i=i+1
execute("value=a" & i)'获取变量 a1…… 的值
response.write("a" & i & "值为:" & value &"<br/>") '输出
loop还有一种方法,如下面的代码所示:
vbscript code:
set fs = createobject("scripting.filesystemobject")
set txt1 = fs.opentextfile("1.txt", 1)
set txt2 = fs.createtextfile("c:\fso\scriptlog.txt")
do until txt1.atendofstream
str_a = txt1.readline
str_a = replace(str_a, "度","$")
str_ar = split(str_a, "$")
if isnumeric(str_ar(ubound(str_a))) then
txt2.writeline str_ar(ubound(str_a))
end if
loop
txt1.close
txt2.close
set txt1 = nothing
set txt2 = nothing
set fs = nothing
现有文本文件1.txt,内容如下:
数值_1出现频度12647
数值_2出现频度10000
数值_3出现频度12608
数值_4出现频度8712
数值_5出现频度10658
数值_6出现频度8472
数值_7出现频度11232
数值_8出现频度8648
数值_9出现频度9264
数值_10出现频度7192
数值_11出现频度7192
。。。。
大概有100行
要求把里面每行的数值放到变量中,然后输出成文本文件 2.txt
举例: 把第一行的12674,放到变量a1中
把第二行的10000,放到变量a2中
把第三行的12608,放到变量a2中
….直到最后一行
最后输出成“2.txt” 文本文件的内容为:
a1 = 12647
a2 = 10000
a3 = 12608
a4 = 8712
….
a11 = 7192
希望能能够找到相关代码,并且是能在windows下运行的!!找呀找呀找呀。。
实现代码如下:
vb code:
复制代码 代码如下:
set fso = createobject("scripting.filesystemobject")
set file=fso.opentextfile("1.txt")
ts = file.readall
file.close
set fil = fso.createtextfile("2.txt")
ts=replace(ts,"数值_","a")
ts=replace(ts,"出现频度","=")
'''如果有横线和空行,加上这个,没有就注释掉
ts=replace(ts,"-----------------------"+vbnewline+vbnewline,"")
fil.write ts
fil.close
msgbox "处理完成"上面的代码是把1.txt直接改成了2.txt,中间变量a1~a100省去了,如果还需要中间变量做其它用途的话,可以读取2.txt内容并赋值,代码如下:
vbscript code:
set fso = createobject("scripting.filesystemobject")
set ts = fso.opentextfile("2.txt")
i=0
do while ts.atendofstream=false
str = ts.readline
execute str '执行赋值
i=i+1
execute("value=a" & i)'获取变量 a1…… 的值
response.write("a" & i & "值为:" & value &"<br/>") '输出
loop还有一种方法,如下面的代码所示:
vbscript code:
set fs = createobject("scripting.filesystemobject")
set txt1 = fs.opentextfile("1.txt", 1)
set txt2 = fs.createtextfile("c:\fso\scriptlog.txt")
do until txt1.atendofstream
str_a = txt1.readline
str_a = replace(str_a, "度","$")
str_ar = split(str_a, "$")
if isnumeric(str_ar(ubound(str_a))) then
txt2.writeline str_ar(ubound(str_a))
end if
loop
txt1.close
txt2.close
set txt1 = nothing
set txt2 = nothing
set fs = nothing
上一篇: vbs列出内网的中计算机(工作组也可以)