使用 UFT/QTP 将列名与文本文件中的记录匹配

Match column names with records in text file Using UFT/QTP

我在文本文件中有 table 个信息:

CurrentOdometerReading PreviousOdometerReading GallonsOfGas GasPrice  MPG     TotalCost 
500                    200                     15           2.55      20      .25
600                    350                     18           2.55      13.89   .90
700                    510                     17           2.55      11.18   .35 
800                    443                     9            2.55      39.67   .95 
950                    801                     8            2.55      18.63   .40 
10000                  8043                    99           2.55      19.77   2.45 
11000                  5004                    150          2.55      39.97   2.50 

第一行实际包含列 names.The 下一行表示与列名匹配的数据。我真的很难在 UFT/QTP:

中以下面的方式打印(循环)这些数据

如果有人有类似的经历,我将非常感谢您的意见。 到目前为止我写了这个:

Set Fso=createobject ("scripting.filesystemobject")

set txtfile=fso.OpenTextFile filepath

var1=txtfile.ReadAll 

var1=split(var1,vblf)
numarray= ubound(var1)
 For i = 0 To numarray

content=split(var1(i)," ")
numlinearr=ubound(content)

print content(i)

'For Iterator = 1 To numlinearr
'bol=split(content(Iterator)," ")
'print content(i)&" = "& bol(Iterator)

'Next
next 

看来你的开端不错。尽管您错过的是用于数据定义的特定数组。最好不要为不同的用途保留相同的变量名(就像你对 Var1 所做的那样)

类似于:

fileFull = txtFile.ReadAll
fileLines = Split(fileFull, vblf)
fileDataNames = Split(fileLines(0), " ")
numArray = UBound(fileLines)
numData = UBound(fileDataNames)

For LineNumber = 1 To numArray
    content = ""
    localDatas = Split(fileLines, " ")
    For dataNumber = 0 to numData
        content = content & fileDataNames(dataNumber) & " = " & localDatas(dataNumber)
    Next
    Print content
Next

基本思路是将第一行存储在别处,因为您将多次使用它。这就是为什么第一个循环从 1 开始,而不是从 0(由 split 函数创建的任何表格的基础)开始:零行是其他东西。