Как найти конец строки или начало новой строки в открывшемся 4gl?
У меня есть файл.csv, и мне нужно манипулировать данными на основе начала или конца строки. Как найти начальную точку каждой строки?
2 ответа
Это проще всего, когда вы импортируете файл построчно.
DEFINE VARIABLE cLine AS CHARACTER NO-UNDO.
INPUT FROM yourfile.csv .
REPEAT:
IMPORT UNFORMATTED cLine .
// cLine contains exactly a single line
END.
Если данные более согласованные, вы можете даже использовать IMPORT с разделителем DELIMITER UNMORMATTED.
Если это действительно CSV, то вы можете обработать его очень эффективно:
define variable inputItemList as character no-undo extent 128.
define variable i as integer no-undo.
input from value( "yourfile.csv" ).
itemLoop: repeat:
inputItemList = ?.
import delimiter "," inputItemList.
do i = 1 to 128:
if inputItemList[i] = ? then
next itemLoop.
else
do:
/* do something useful with this item... */
end.
end.
end.
input close.
"128" - это произвольное количество элементов - выберите что-то другое, если вы знаете свои данные лучше, чем я.
Если данные не все символьные поля, и если они согласованы, то вы также можете использовать правильно типизированные поля в выражении IMPORT.