Ich habe eine .csv-Datei und ich muss die Daten basierend auf Anfang oder Ende einer Zeile bearbeiten. Wie kann ich den Startpunkt jeder Linie finden?So finden Sie das Ende der Zeile oder den Start einer neuen Zeile in Bearbeitung openge 4gl?
0
A
Antwort
0
Am einfachsten ist es, wenn Sie die Datei Zeile für Zeile importieren.
DEFINE VARIABLE cLine AS CHARACTER NO-UNDO.
INPUT FROM yourfile.csv .
REPEAT:
IMPORT UNFORMATTED cLine .
// cLine contains exactly a single line
END.
Wenn die Daten konsistenter sind, können Sie sogar IMPORT mit einem DELIMITER-Team von UNFORMATTED verwenden.
0
Wenn es wirklich eine CSV ist, dann können Sie es sehr effizient verarbeiten:
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“ ist eine beliebige Anzahl von Elementen - Pick etwas anders, wenn Sie Ihre Daten besser wissen als ich.
Wenn die Daten nicht alle Zeichenfelder sind und wenn sie konsistent sind, können Sie auch korrekt typisierte Felder in der IMPORT-Anweisung verwenden.