Я работаю с мейнфреймом терминала 3270. У меня есть экран с 30 позициями, в котором мне нужно прочитать текстовый файл и вставить значения в столбце A в эти 30 различных позиций на экране. Текстовый файл может иметь любое количество строк, но у меня есть только 30 позиций для вставки за итерацию. После того, как эти 30 позиций заполнены, я нажимаю Enter, что очищает экран, и я могу вставить еще 30 и так далее. Если есть еще 30 для вставки, их может быть меньше 30.
В текстовом файле есть только один столбец (столбец A). Столбец A, строка 1 текстового файла будет вставлена в первую позицию. Столбец А, строка 2 вставится во вторую позицию и так далее ...
Я создал цикл, который читает из моего текстового файла и вытягивает значение в мой код, и я могу вставить значение в эту первую позицию. Затем мне нужно перейти к следующему ряду и вставить следующее значение в следующую позицию. Я пытаюсь сделать это без необходимости создавать 30 различных Do..Until
петель.
Вот мой цикл, который читает из текстового файла, это работает:
Sub sub_Run_Loop
i = 0
CountLoans = 0
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
arrFields = Split(strLine, ",")
subDoWork (i)
i = i + 1
Loop
End Sub
Sub subDoWork (i)
ColumnA = arrFields(0)
CurrentRow = i
ActualRow = CurrentRow - 1
For CurrentRow = 1 To ActualLoans
subMoveCursor 13, 4
subEnterData ColumnA
CountLoans = CountLoans + 1
Next
i = i + 1
'At Right here, I need to move to the next value in Column A
'from the text file and paste to the next position
subMoveCursor 14, 4
subEnterData ColumnA
CountLoans = CountLoans + 1
CountLoans = CountLoans + 1
If CountLoans >= ActualLoans Then
subEndScript
End If
End Sub
Я пытаюсь перейти от одной строки к другой, вставляя значения в разные позиции, не создавая 30 разных циклов.