Startseite › Foren › Deutsches LiveCode-Forum › Datagrid – Import CSV
- Dieses Thema hat 6 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 7 Jahren von Klaus Major.
-
AutorBeiträge
-
-
November 3, 2017 um 14:31 Uhr #2556
Hallo Zusammen,
ich habe gerade erst mit Livecode begonnen.
Nun bräuchte ich doch schon einmal eure Hilfestellung.
Aktuell versuche ich über ein Datagrid eine csv-Artikel-Datei (semikolon getrennt) einzulesen.
Leider funktioniert dies nicht so richtig.
Statt die Daten Spalte für Spalte zu schreiben wird alles in Spalte 1 eingefügt.
Habe es ebenfalls nach folgendem Tutorial probiert. Aber irgendwas mache ich falsch.http://lessons.livecode.com/m/4071/l/12063-how-do-i-rename-the-headers-on-a-text-file
Ich bräuchte keine Header. Nur die reinen Artikeldaten (5 Spalten).
Danke vorab.
-
November 3, 2017 um 16:23 Uhr #2558
Hallo AnHa,
1. willkommen im Forum! 🙂
2. Bitte post das/die Skript/e, mit dem Du die Datei importiert und ins Datagrid packst.
Raten dauert einfach zu lange! 😉Gruß
Klaus
-
November 3, 2017 um 16:25 Uhr #2560
Wichtig:
Hast Du die fünf Spalten (columns), die Du benötigen wirst, bereits für Dein Datagrid erstellt?
Das ist unbedingt erforderlich! -
November 3, 2017 um 16:30 Uhr #2562
Hallo Klaus,
vielen Dank für den Willkommensgruß.
Die 5 Spalten habe ich noch nicht für mein Datagrid erstellt.
Ich dachte, dass diese automatisch eingelesen werden.
Wie erstelle ich diese am besten?Folgendes Skript habe ich verwendet:
on mouseUp
local tFileName, tFileContentsanswer file “Please choose a file to import” with type “comma Separated Values|csv|CSV”
if the result is not “cancel” then
put it into tFileName## Get the contents of the file
put URL (“file:” & tFileName) into tFileContents## Display the file contents in the field
put line 1 of tFileContents into tColumnTitles
replace comma with return in tColumnTitles
set the dgProp[ “columns” ] of group “text” to tColumnTitlesend if
replace semicolon with tab in tFileContents
set the dgText[true] of group “text” to tFileContents## Get the complete data
put the DGData of grp “text” into tArray## Set the data of the datagrid back to the now modified array
set the DGData of grp “text” to tArrayend mouseUp
DANKE
Gruß
Andreas
-
November 3, 2017 um 17:03 Uhr #2564
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
-
November 3, 2017 um 17:38 Uhr #2566
Hallo Klaus,
SUUUUPPPEERR!
Es hat mit deinem Skript (natürlich) funktioniert :o)
Durch deine gekürzte Fassung habe ich es jetzt auch verstanden.Spalten sind auch drin.
Jetzt kann weiter testen.
Som macht es Spaß !Danke
Andreas
-
November 3, 2017 um 17:42 Uhr #2568
Ooooookay! 🙂
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.