Ganze Card unter Android speichern und laden

Startseite Foren Deutsches LiveCode-Forum Ganze Card unter Android speichern und laden

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #13479
      MichaelS
      Teilnehmer

        Hallo liebe LiveCode Gemeinde,
        ich möchte gerne auf meinem Android System eine Card die Text sowie auch Bilder enthält speichern, um sie bei einem späteren Start der App wieder laden zu können. Leider funktioniert mein Ansatz noch nicht :

        put card "seite2" into Daten
           put specialFolderPath("engine") into Zielordner
           if there is not a folder Zielordner then
              create folder Zielordner
           end if
           put Daten into url("binfile:" & Zielordner & "Test.txt") 
           if the result <> EMPTY then
              answer "Fehler beim Schreiben der Datei ! " & CR & the result   
           end if

        Das wieder einlesen habe ich mit folgendem Code probiert :

          put specialFolderPath("engine") into Zielordner
           put url("binfile:" & Zielordner & "Test.txt") into Daten 
           if the result <> EMPTY then
              answer "Fehler beim Lesen der Datei ! " & CR & the result   
           end if
           put Daten into card "seite3"

        Mein Smartphone macht keine Fehlermeldung beim Speichern, aber beim Laden sagt es :
        Fehler beim Lesen der Datei !
        can´t open file .

        Was mache ich falsch ?
        Gruß
        Michael

      • #13491
        Klaus Major
        Administrator

          Hi Michael,

          Du kannst nicht eine einzelne Karte auf diese Weise wegspeichern.
          Leider auch in keinem andern Format.

          ABER:
          Wir dürfen im ENGINE Ordner nicht schreiben! Niemals!
          Zum Speichern immer -> specialfolderpath(“documents”) unter Mobile) verwenden!

          Du musst entweder:
          1. die ganze Karte komplett nachbauen oder
          2. einen Stack bestehend aus dieser Karte speichern

          Was genau machst bzw. möchtest Du denn machen?
          Wird die Karte neu erstellt? Oder nur verändert?
          Vielleicht gibt es da eine andere Lösung.

          Gruß

          Klaus

        • #13530
          MichaelS
          Teilnehmer

            Hallo Klaus,
            ersteinmal Danke für deine schnelle Antwort.

            Nun ja, ich bin beruflich ständig auf Reisen und möchte mir gerne so ein Reisetagebuch bauen.
            Ich importiere mir drei bis vier Fotos, schreibe etwas Text dazu (Hotel.- Baustelleninfos usw.) und möchte das dann auf meinem Smartphone als Datensatz speichern.

            Und später möchte ich dann in den Reisen blättern und (vergessene)Details wieder ans Tageslicht holen.
            Welchen Ansatz würdest Du dafür wählen ?

            Gruß
            Michael

          • #13533
            Klaus Major
            Administrator

              Hi Michael,

              aha, verstehe.

              Das wäre ein idealer Kandidat für eine SQLite Datenbank und für einen Stack mit nur einer Karte, auf dem nur alle benötigten (leere) Felder und (leere) Bildobjekte in der gewünschten Anzahl liegen.

              Es gibt dort dann nur ein paar Buttons zur Navigation sowie einen “Löschen” und “Neu” Button.

              Das ist aber schon etwas fortgeschrittener Kram.

              Eine weitere Möglichkeit wäre Folgendes:
              1. Du erstellst einen “Template” Stack wie oben beschrieben als SEPARATEN Stack z.B. tagebuch.livecode
              2. Du fügst diesen Stack Deiner Standalone (siehe 3) hinzu über “Add files”
              im “Standalone Application Settings” Stack
              3. Du erstellst einen “Splash Screen” Stack, das bedeutet, er dient nur dazu, eine Engine zu haben.
              Dieser Stack besteht nur aus einer Karte, die kurz angezeigt wird und danach geht es zum eigentlichen Stack.
              4. Da wir im ENGINE Ordner keine Schreibrechte haben und eine Standalone sich auch nciht selber speichern kann, sollte der SPLASH Stack das hier machen:

              on openstack
              
                ## Stack im App Package
                put specialfolderpath("resources") & "/tagebuch.livecode" into tSourceStack
              
                ## Stack im Dokumenten Ordner des User
                ## Hier dürfen wir SCHREIBEN (= Speichern eines Stacks!)
                put specialfolderpath("documents") & "/tagebuch.livecode" into tTargetStack
              
                ## Nur beim ersetn Start des Programm auf dem Handy
                if there is not a file tTargetStack then
                  ## Stack rüberkopieren
                  put url("binfile:" & tSourceStack) into url("binfile:" & tTargetStack)
                end if
              
                ## Nun können wir diesen Stack öffnen und auch SPEICHERN!
                go stack tTargetSTack
              
                ## Splash Stack hat seine Schuldigkeit getan:
                hide stack "Dein Splashstack hier..."
              end openstack

              Verstehst Du das Prinzip?

              Gruß

              Klaus

            • #13534
              Klaus Major
              Administrator

                Auf den Stack “tagebuch.livecode” kannst Du spöter aber wieder irgendwie zugreifen, oder?
                Wie gesagt, keine Ahnung von “Mobile”…

              • #13539
                MichaelS
                Teilnehmer

                  Hallo Klaus,
                  das mit dem TemplateStack ist nachvollziehbar. Werde ich mir mal Gedanken drüber machen.
                  Ob ich später auf den Stack zugreifen kann, das weiss ich noch nicht. Muss ich mich
                  mal mit beschäftigen.
                  Noch besser gefällt mir allerdings die Sache mit der Datenbank. Unter einem Schlüßel (Datum oder so..) auf ein paar Fotos und etwas Text zugreifen und die Card dann beim Wiederaufruf der Daten, neu aufbauen.
                  Auch das schaue ich mir mal an..
                  Danke für die Tipps, ich melde mich nochmal
                  wenn ich weiter gekommen bin.

                  Gruß
                  Michael

                • #13976
                  MichaelS
                  Teilnehmer

                    Hallo Klaus,
                    ich wollte mich noch mal melden um zu berichten was daraus geworden ist.
                    Das mit dem Template Stack habe ich nicht weiter verfolgt, weil mich das Thema mit
                    Sqlite sehr interessiert hat.
                    Es gibt eine Livecode-Lesson (nennt sich Photos und habe ich im Download Bereich von Livecode.com gefunden)die genau beschreibt wie man Fotos auf dem Smartphone lädt, und in eine SQLite Datenbank auf dem Smartphone speichert.
                    Und genau das habe ich gemacht, und es funktioniert. Nun kann ich das Grundgerüst nach meinen
                    Wünschen ändern und daraus ein Reisetagebuch erstellen.

                    Liebe Grüße
                    Michael

                  • #13977
                    Klaus Major
                    Administrator

                      Prima, herzlichen Glüchwunsch! 🙂

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