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
      Verwalter

      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
      Verwalter

      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
      Verwalter

      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
      Verwalter

      Prima, herzlichen Glüchwunsch! 🙂

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