2016-03-30 1 views
1

Je fichier CSV comme suit:Comment écrire un fichier .csv sur ma table en cours openedge 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 

Comment puis-je écrire un nom table T avec des champs f1 f2 et f3? Il y a un saut de ligne avant chaque ABC

Répondre

3

Vous pouvez le faire avec INPUT et IMPORT.

Si chaque ligne dans le fichier est un enregistrement c'est une façon:

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

Je me demande si ça va travailler depuis ses chaînes CSV manquent les guillemets. –

+1

@TimKuehn Je l'ai testé avec OE11.6 dans Windows 7 et cela fonctionne. (L'aide en ligne stipule: ... Vous devez entourer tous les champs de caractères entre guillemets ("") s'ils contiennent des caractères délimiteurs .... Donc, sans caractères délimiteurs, citation des chaînes libres semble OK (mais peut-être très peu pratique si vous utilisez un virgule normale comme délimiteur car il est assez commun dans les textes.) – Jensd

+0

Oui cela fonctionne, merci – mac100