Разделить ячейку в UFT - PullRequest
       10

Разделить ячейку в UFT

0 голосов
/ 14 ноября 2018

У меня есть текстовый документ (.txt), там у меня есть n строк, которые нужно разделить, но дело в том, что у меня нет разделителя. Я знаю длину каждой переменной, которая не изменяется.

Например, первая переменная - от 25 до 35 символов; второй с 36 до 47; затем от 48 до 78, затем от 79 до 119, и это до 360-го символа строки.

Я полагаю, что решение заключается в двойном цикле, по одному для каждой строки, а другой для каждой переменной, но я не могу его получить.

Если вам нужна дополнительная информация, просто спросите, я полностью потерян.

К счастью,

1 Ответ

0 голосов
/ 14 ноября 2018

Шаги, которые нужно предпринять:

  1. Открыть файл
  2. Читать строку
  3. Подтвердите, что строка содержит 360 символов
  4. Назначить фрагменты строки различным переменным
  5. Делать вещи с переменными
  6. Прочитайте еще одну строку и повторяйте до EOF

1 & 2: Ваша книга должна иметь ссылку на среду выполнения сценариев Microsoft, чтобы предоставить вам доступ к FileSystemObject. Я позволю тебе исследовать это.

Создайте FileSystemObject и используйте его для создания TextStream с путем к вашему файлу.

currentLine = textStream.ReadLine()
Do Until textStream.EOF
    If Len(currentLine) = 360 Then
        firstChunk = Mid$(currentLine, 25, 10)
        secondChunk = Mid$(currentLine, 36, 11)
        thirdChunk = Mid$(currentLine, 48, 30)
        fourthChunk = Mid$(currentLine, 78, 30)

        ' Do stuff with chunks
    End If
    currentLine = textStream.ReadLine()
Loop

Со временем вы можете получить фантазию и заполнить массив парными элементами, детализирующими начальную точку чанка и количество его символов, что-то вроде:

Dim arrChunkPoints As Variant
Dim arrChunks As Variant
arrChunkPoints = Array(25,10, _
                       36,11, _
                       48,30, _
                       78,30)
ReDim arrChunks(UBound(arrChunkPoints)\2)   ' Integer returned

Это позволит вам перешагнуть через элементы в arrChunkPoints и заполнить каждый элемент arrChunks частью currentLine, используя Mid $ (), но заполненный значениями из arrChunkPoints. Но это наверное на другой день.

...