Frage zu Handbuch: Seite 224

Startseite Foren Deutsches LiveCode-Forum Frage zu Handbuch: Seite 224

Schlagwörter: , , ,

Ansicht von 11 Antwort-Themen
  • Autor
    Beiträge
    • #4503
      Anonym

        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:-)

      • #4507
        hauke
        Administrator

          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

        • #4509
          Torsten
          Teilnehmer

            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
            
          • #4514
            hauke
            Administrator

              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!

            • #4516
              Torsten
              Teilnehmer

                Du sollst lieber am Livecode-Profi-Buch arbeiten, das wird gebraucht 😀

              • #4524
                hauke
                Administrator

                  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?

                • #4567
                  Anonym

                    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 🙂

                  • #4569
                    Torsten
                    Teilnehmer

                      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

                    • #4591
                      Anonym

                        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 🙂

                      • #4593
                        Torsten
                        Teilnehmer

                          moment, ich denke noch…

                        • #4595
                          Anonym

                            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 🙂

                          • #4597
                            gfz
                            Teilnehmer

                              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 mit put 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

                          Ansicht von 11 Antwort-Themen
                          • Du musst angemeldet sein, um auf dieses Thema antworten zu können.