当前位置 博文首页 > vbs解决处理TXT文本数据相关问题实现代码

    vbs解决处理TXT文本数据相关问题实现代码

    作者:admin 时间:2021-02-09 18:21

    有个小问题,如下
    现有文本文件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
    js
    下一篇:没有了