2016-03-30 4 views
1

Ich habe CSV mit Datei wie folgt:Wie schreibe ich .csv Datei in meine Tabelle im Gange opengee 4gl?

ABC,1,Service completion date/time actual 
ABC,2,Delivery date/time requested 
ABC,3,Invoice date/time 
ABC,4,Order date/time 
ABC,5,Saleable stock demand cover period expected 
ABC,6,Moved from location date 

Wie kann ich es auf einen Tabellennamen T mit Feldern f1 und f2 f3 schreiben? Es gibt einen Zeilenumbruch vor jedem ABC

Antwort

3

Sie können es mit INPUT und IMPORT tun.

Wenn jede Zeile in der Datei einen Datensatz ist dies eine Möglichkeit ist:

DEFINE TEMP-TABLE t NO-UNDO 
    FIELD f1 AS CHARACTER 
    FIELD f2 AS CHARACTER 
    FIELD f3 AS CHARACTER. 

DEFINE STREAM strImport. 
DEFINE VARIABLE cCsvFile AS CHARACTER NO-UNDO. 

cCsvFile = "c:\temp\myfile.csv". 

INPUT STREAM strImport FROM VALUE(cCsvFile). 
REPEAT : 
    CREATE t. 
    /* Default separator is space so use , instead */ 
    IMPORT STREAM strImport DELIMITER "," t. 

END. 
INPUT CLOSE. 


FOR EACH t: 
    DISPLAY t. 
END. 
+0

Ich frage mich, ob das wird funktionieren, da seine CSV-Zeichenfolgen, die Anführungszeichen fehlen. –

+1

@TimKuehn Ich habe es mit OE11.6 in Windows 7 getestet und es funktioniert. (Online-Hilfe gibt an: ... Sie müssen alle Zeichenfelder in Anführungszeichen setzen, wenn sie Begrenzungszeichen enthalten.) Also ohne Begrenzungszeichen scheint das Angeben freier Zeichenfolgen OK zu sein (aber vielleicht sehr unpraktisch, wenn Sie ein normales Komma als Trennzeichen, wie es in Texten üblich ist.) – Jensd

+0

Ja, es funktioniert, danke – mac100