Как найти конец строки или начало новой строки в открывшемся 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.

Другие вопросы по тегам