Antwort auf: Datagrid – Import CSV

Startseite Foren Deutsches LiveCode-Forum Datagrid – Import CSV Antwort auf: Datagrid – Import CSV

#2564
Klaus Major
Administrator

    Hallo Andreas,

    die Spalten werden leider nicht automatisch erstellt.

    Die Spalten kannst Du im Inspektor für Dein Datagrid erstellen.
    Ein Klick auf das PLUS Zeichen erstellt eine neue Spalte.

    Das Skript setzt voraus, daß die erste Zeile der CSV Datei die Spaltennamen enthält!
    Tut sie das? Ich gehe mal davon aus, daß dem nicht so ist.

    Ich habe das Skript mal etwas verschlankt, erstelle einfach mal fünf Spalten,
    egal, wie die heissen und probiere dann dieses Skript aus und lies mekine Kommentare:

    on mouseUp
       ## Deklarieren der Variablen ist nur erforderlich, wenn Du "Strict Compilatiuon Mode" 
       ## in den Voreinstellungen für den Skript Editpr angekreutzt hast!
       ## local tFileName, tFileContents
       answer file "Bitte eine CSV-Datei zum Import auswählen" with type "comma Separated Values|csv|CSV"
       
       ## Ich vermeide längere IF THEN END IF Klauseln, wo immer möglich :-)
    ## User hat CANCEL geklickt, es gibt also keinen Grund hier und jetzt weiter zu machen!
       if the result = "cancel" then
          exit mouseup
       end if
    
       put it into tFileName
       ## Inhalt der Datei in Variable lesen
       put URL ("file:" & tFileName) into tFileContents
       
       ## Datagrids benötigen TAB getrennte Werte:
       replace ";" with tab in tFileContents
       
       ## Nun einfach die Property "dgtext" des Datagrid auf diese Variable setzen
       set the dgText of group "Dein Datagrid hier..." to tFileContents
       
       ## the dgtext[TRUE]... zeigt an, daß die erste Zeile der Datei die Spaltennamen enthält.
       ## Aber auch DAS würde die Spalten nicht erstellen, sondern dient nur dazu, die Daten 
       ## in die richtigen Spalten einzulesen, sofern die REIHENFOLGE der Spalten in der 
       ## CSV-Datei anders ist als im Datagrid in LC!
    end mouseUp

    Gruß

    Klaus