Как найти конец строки или начало новой строки в процессе openge 4gl?

У меня есть файл .csv, и мне нужно манипулировать данными в зависимости от начала или конца строки. Как я могу найти начальную точку каждой строки?


person mac100    schedule 20.05.2016    source источник


Ответы (2)


Проще всего, когда вы уже импортируете файл построчно.

DEFINE VARIABLE cLine AS CHARACTER NO-UNDO.

INPUT FROM yourfile.csv .

REPEAT:
    IMPORT UNFORMATTED cLine .

    // cLine contains exactly a single line
END.

Если данные более последовательны, вы можете даже использовать ИМПОРТ с РАЗДЕЛИТЕЛЕМ вместо НЕФОРМАТИРОВАННОГО.

person Mike Fechner    schedule 20.05.2016

Если это действительно 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.

person Tom Bascom    schedule 20.05.2016