Сопоставление имен столбцов с записями в текстовом файле Использование UFT/QTP

У меня есть эта таблица информации в текстовом файле:

CurrentOdometerReading PreviousOdometerReading GallonsOfGas GasPrice  MPG     TotalCost 
500                    200                     15           2.55      20      $38.25
600                    350                     18           2.55      13.89   $45.90
700                    510                     17           2.55      11.18   $43.35 
800                    443                     9            2.55      39.67   $22.95 
950                    801                     8            2.55      18.63   $20.40 
10000                  8043                    99           2.55      19.77   $252.45 
11000                  5004                    150          2.55      39.97   $382.50 

Первая строка фактически содержит имена столбцов. Следующие строки представляют данные, соответствующие имени столбца. Мне очень трудно распечатать (зациклить) эти данные следующим образом в UFT/QTP:

  • CurrentOdometerReading = 500
  • ПредыдущийОдометрПоказания = 200
  • Галлоны = 15
  • Цена газа = 2,55
  • миль на галлон = 20
  • Общая стоимость = 38,25

Если у кого-то был подобный опыт, буду ОЧЕНЬ признательна за ваше мнение. Пока я написал это:

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 

person ginmax    schedule 17.12.2015    source источник


Ответы (1)


Кажется, у тебя хорошее начало. Хотя вам не хватает определенного массива для вашего определения данных. И лучше не использовать одно и то же имя переменной для разных целей (как в случае с 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 (база для любой таблицы, созданной функцией разделения): нулевая строка - это что-то другое.

person gazzz0x2z    schedule 17.12.2015
comment
большое спасибо! :) это было очень понятно. Как вы видите в моем коде, у меня была туманная логика и некоторые идеи, но я не мог собрать их воедино. СПАСИБО! и про имена переменных вы тоже правы)) - person ginmax; 17.12.2015
comment
кстати, я поставил localDatas=Split(fileLines(LineNumber), ), так как fileLines это массив - person ginmax; 17.12.2015
comment
а, да, я пропустил это. Хорошее место. - person gazzz0x2z; 17.12.2015