0

.csv ファイルがあり、行の開始または終了に基づいてデータを操作する必要があります。各行の開始点を見つけるにはどうすればよいですか?

4

2 に答える 2

0

ファイルを 1 行ずつインポートしておくと、最も簡単です。

DEFINE VARIABLE cLine AS CHARACTER NO-UNDO.

INPUT FROM yourfile.csv .

REPEAT:
    IMPORT UNFORMATTED cLine .

    // cLine contains exactly a single line
END.

データの一貫性がより高い場合は、IMPORT を UNFORMATTED の DELIMITER insteam で使用することもできます。

于 2016-05-20T05:51:02.980 に答える
0

それが本当に 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 ステートメントで適切に型指定されたフィールドを使用することもできます。

于 2016-05-20T15:34:18.877 に答える