Startseite › Foren › Deutsches LiveCode-Forum › Frage zu Handbuch: Seite 224
Schlagwörter: csv, Datei, Textfeld, Textfelder
- Dieses Thema hat 11 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahren, 7 Monaten von gfz.
-
AutorBeiträge
-
-
März 2, 2018 um 18:32 Uhr #4503Anonym
Hallo Hauke,
Hallo Forumsmitglieder
ich habe mir diese Woche Dein Buch “Eigene Apps Programmieren” durchgelesen und so manches Beispiel auch nachgebaut. Gefällt mir sehr gut! Was mich allerdings besonders interessiert, wird auf Seite 224 angerissen. Dort beschreibst Du wie man bsp.weise Daten in eine Datei schreibt und auch zurückschreibt. Wenn ich das richtig verstanden habe, wird dann der ganze Inhalt der Datei in einem Textfeld ausgegeben. Ich würde gerne wissen, wie man beispielsweise aus einer CSV-Datei (VORNAME,NACHNAME,ALTER) die Inhalte auf 3 Textfelder verteilt.Auf eine Antwort und noch besser ein Beispiel, würde ich mich sehr freuen.
Ich hab auch schon alles durchsucht und nichts gefunden.Ilona:-)
-
März 2, 2018 um 19:44 Uhr #4507
Hallo Ilona,
was auf Seite 224 kurz gezeigt wird, ist einfach, wie man den Textinhalt einer Variablen in einer Datei abspeichert und wie man den Textinhalt einer Datei anschließend wieder in eine Variable einlesen kann.
Nämlich (Beispiel aus dem Buch) so:
put url("file:"&specialFolderPath("documents")&"/meinOrdner/meineDatenListe.txt") into meineDaten
Wenn ich Dich recht verstehe, möchtest Du Daten aus einer CSV-Datei einlesen und anschließend auseinandernehmen. Dazu gehst Du zunächst einmal genau so vor wie im Beispiel-Code oben. Du liest die CSV-Datei in eine Variable ein, die beispielsweise “meineDaten” heißt.
Anschließend musst Du diese Daten Zeile für Zeile durchgehen. Das kannst Du zum Beispiel mit einer “repeat for each” Schleife machen:
repeat for each line zeile in meineDaten -- Zeilen auseinandernehmen end repeat
Jede dieser Zeilen kannst Du innerhalb der repeat-Schleife dann in “Items” auseinandernehmen – die bei CSV-Dateien zum Beispiel durch Komma getrennt sind. Dann hast Du die einzelnen Elemente der jeweiligen Zeile der CSV-Datei und kannst sie in unterschiedliche Textfelder schreiben:
set the itemDelimiter to comma put item 1 of zeile into field 1 put item 2 of zeile into field 2 put item 3 of zeile into field 3
Alles klar??
Viele Grüße
Hauke
-
März 2, 2018 um 20:00 Uhr #4509
Hi Ilona,
ganz einfach:
Erzeuge einen neuen Stack mit drei Textfeldern, z.B.
field “Vorname”
field “Nachname”
field “Alter”Dann machst Du einen Button auf die Seite und gibst ihm folgendes Script:
on mouseUp pButtonNumber answer file "Bitte CSV-Datei laden..." if it is not empty then put it into tFilename put url ("file:" & tFilename) into tFile repeat for each line i in tFile put item 1 of i & cr after field "Vorname" put item 2 of i & cr after field "Nachname" put item 3 of i & cr after field "Alter" end repeat end if end mouseUp
-
März 2, 2018 um 20:27 Uhr #4514
Ich merke schon, ich werde hier gar nicht mehr gebraucht 🙂 Toll, dass jede Frage immer so schnell und kompetent beantwortet wird! Das LiveCode-Forum lebt!
-
März 2, 2018 um 21:08 Uhr #4516
Du sollst lieber am Livecode-Profi-Buch arbeiten, das wird gebraucht 😀
-
März 3, 2018 um 09:07 Uhr #4524
Schreib mal an den Verlag, dass Du Dir das wünschen würdest. Dass ich es gerne schreiben würde, wissen die schon – aber sie befürchten immer noch zu geringe Nachfrage.
Vielleicht könnte man das ja auch als Kooperation machen. Jetzt wo wir das geballte deutsche LiveCode-Wissen hier im Forum beisammen haben…
@Klaus – hättest Du Interesse? -
März 5, 2018 um 18:49 Uhr #4567Anonym
Hallo Torsten,
vielen Dank für Deine schnelle Antwort!
es hat funktioniert, super.
Nun würde ich gerne 2 Buttons mit der Funktion vor und zurück erstellen.
Ich habe schon einiges recherchiert(bevore and previous), allerdings funktioniert es nicht.
Hast Du vielleicht eine Idee?schöne Grüße aus BW
Ilona 🙂 -
März 5, 2018 um 19:35 Uhr #4569
Hi Ilona,
was meinst Du mit vor und zurück? Beschreibe mal etwas genauer, was Du tun willst.
Schöne Grüsse aus Dresden
Torsten -
März 6, 2018 um 09:04 Uhr #4591Anonym
Hallo Torsten,
ich möchte eine kleine Verwaltung für mich schreiben. Die Daten sollen aus einer CSV Datei gelesen und geschrieben werden. Beispielsweise habe ich in der CSV Datei 10 Inhaltszeilen (Interpreter1,Interpreter2 usw. Um nun von Interpreter1 zum nächsten Interpreter2 springen zu können, möchte ich das mit “vor” und “zurück” Buttons tun.
Grüße, Ilona 🙂 -
März 6, 2018 um 16:55 Uhr #4593
moment, ich denke noch…
-
März 6, 2018 um 17:19 Uhr #4595Anonym
Hallo Torsten,
nicht verzweifeln!
danke für Deine Geduld. Ich lese mir mal Deine Mail durch und werde ausprobieren.
Liebe Grüße aus dem sonnigen Kraichgau.
Ilona 🙂 -
März 6, 2018 um 18:16 Uhr #4597
Hallo Ilona,
ich würde die eingelesene Datei in einer globalen Variable (zb.: gCSVDatei) speichern, die erste Zeile nach obigem Muster anzeigen und die Zahl eins für die aktuelle Zeile ebenfalls in einer globalen Variable (zb.: gAktuelleZeile) ablegen. Beim Drücken auf den “vor”-Button addiere ich zur aktuellen Zeile 1 und rufe die daraus resultierende Zeile aus der globalen Variable gCSVDatei ab (das könnte man mitput line gAktuelleZeile of gCSVDatei into tCSVZeile
). Und diese kannst Du dann nach obigem Muster in die drei gewünschten Infos aufteilen und in die entsprechenden Felder schreiben. Beim Drücken der “Zurück” Taste das selbe, nur dass du von der aktuellen Zeile eins abziehst. Dann musst Du Dir nur noch überlegen, ob Du bei 1 abbrechen willst und eventuell die Taste deaktivierst, oder bei der letzten Zeile wieder beginnst (If-Abfragen findest Du im Buch ab Seite 135).
liebe Grüße,
Georg
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.