Scripting VBScript(QTP)-固定宽度文件-检查内容

Scripting VBScript(QTP)-固定宽度文件-检查内容,scripting,vbscript,qtp,Scripting,Vbscript,Qtp,如果我有一个固定宽度的文件(.txt),其规格(哪些字符构成哪个字段)如下: 示例3文件中的行: 7284585 98354u38654 347 USD jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjnfhUnited States Dollar 728458598354u38654 347 USD jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn

如果我有一个固定宽度的文件(.txt),其规格(哪些字符构成哪个字段)如下:

示例3文件中的行:

7284585   98354u38654     347 USD        jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjnfhUnited States Dollar
728458598354u38654        347 USD    jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn      Euro
7284585   98354u38654347      GBP        jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn  Pound
我必须编写哪些vbscript代码:

  • 读取文件中的所有行
  • 将任何行号和cur_desc值输出到满足此条件的另一个文件(即“test_currency_DDMMYYYY.txt”):
    (cur_code='USD'和cur_desc!='United Dollar')

逐行读取文本文件,解析并写入另一个文本文件:

Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set outPut = objFSO.CreateTextFile("c:\\output.txt", true);
Set objTextFile = objFSO.OpenTextFile _
  ("c:\mytextfile.txt", ForReading)
Do Until objTextFile.AtEndOfStream
  strLine = objTextFile.Readline
' parse strLine
  id_no = Mid(strLine, 1, 9)
  seq = Mid(strLine, 11, 14) ' and so on
  outPut.WriteLine(id_no & "_" & seq);
Loop
outPut.Close();
Set objFSO = Nothing
Set outPut = Nothing
解析字符串可以使用Split、Mid、Len等进行。 例如


看到了吗?没有字段是由每行的前10个字符组成的。那么Mid函数是最好的,我如何将它写入另一个文件?我认为ADO会更快更容易,正如我上面的评论。请提供ADO解决方案,具体到Q,我会接受。否则,我将玩弄唯一的答案,如果它满足我的需要,我将接受它。非常感谢。
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set outPut = objFSO.CreateTextFile("c:\\output.txt", true);
Set objTextFile = objFSO.OpenTextFile _
  ("c:\mytextfile.txt", ForReading)
Do Until objTextFile.AtEndOfStream
  strLine = objTextFile.Readline
' parse strLine
  id_no = Mid(strLine, 1, 9)
  seq = Mid(strLine, 11, 14) ' and so on
  outPut.WriteLine(id_no & "_" & seq);
Loop
outPut.Close();
Set objFSO = Nothing
Set outPut = Nothing
id_no = Mid(strLine, 1, 9)
seq = Mid(strLine, 11, 14) ' and so on