VBScript (QTP) - 固定宽度文件 - 检查内容 [英] VBScript (QTP) - fixed width file - check contents

查看:39
本文介绍了VBScript (QTP) - 固定宽度文件 - 检查内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

If I had a fixed width file (.txt) with specs (which characters form which field) such as:

1-10 id_no
11-25 seq
26-30 cur_code
31-40 first
41-90 cur_desc
91-120 misa

文件中的 3 行示例:

Example 3 lines in the file:

7284585   98354u38654     347 USD        jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjnfhUnited States Dollar
728458598354u38654        347 USD    jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn      Euro
7284585   98354u38654347      GBP        jfsnkjndf;kjsdgn;jndfsjngjdsngnkjdsfngkjsdnfgjn  Pound

我必须写什么 vbscript 代码:

What vbscript code would I have to write that:

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

推荐答案

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

Reading text file line by line, parsing and writing to another text file:

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

解析字符串可以使用 VB 字符串函数,例如 Split、Mid、Len等等.例如

Parsing string may be perfomed with VB string functoins such as Split, Mid, Len etc. E.g

id_no = Mid(strLine, 1, 9)
seq = Mid(strLine, 11, 14) ' and so on

这篇关于VBScript (QTP) - 固定宽度文件 - 检查内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆