Startseite › Foren › Deutsches LiveCode-Forum › Eingegebene Daten auf Smartphone werden nicht gespeichert
Schlagwörter: Save, specialfoderpath
- Dieses Thema hat 7 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 4 Monaten von
Klaus Major.
-
AutorBeiträge
-
-
November 16, 2021 um 16:59 Uhr #38938
Hallo Leute,
Ich habe eine simple APP konstruiert. Es gibt eine „Eingabe-Karte“ und eine
„Anzeige-Karte“.Auf der Eingabe Karte wird der Inhalt eines Eingabefeldes per Button in ein
Anzeigefeld auf der Eingabekarte übertragen.
Mit einem 2. Button wird nunmehr der Inhalt dieses Anzeigefeld auf die Anzeige-Karte
in einem Ausgabefeld ausgegeben und angezeigt.Die Sache funktioniert ohne Probleme.
Wird das Projekt geschlossen (Save) und erneut auf gerufen, wird die Eingabe des letzten Standes angezeigt.
Nach Übertragung als akp auf mein Smartphone funktioniert die Eingabe wie im Livecode System.
Wird allerdings die APP am Smartphone beendet und erneut auf gerufen, sind alle Eingaben welche am Smartphone erfolgten, auf der Übertragungsmodus zurück gestellt. Die geänderten Eingaben und Werte am Telefon werden augenscheinlich nicht automatisch gespeichert.Was habe ich nicht beachtet ?
Um die Sache ggf. doch in den Griff zubekommen habe ich im Projekt einen zusätzlichen Button „Werte speichern“ angelegt.
Als Skript im Button:on mouseUp pMouseButton
save stack „Untitled 1“ with newest format
end mouseUpLeider bringt dieser Befehl auch keinen Erfolg. Nach Neustart auf dem Smartphone erscheint immer der Wert, mit welchem die APP hochgeladen wurde.
Was ist zu tun?
Grüße Manni
-
November 16, 2021 um 17:18 Uhr #38940
Hi Manni,
a. ist „Untitled 1“ Deine Runtime?
b. Oder ein Stack, den Du mit „create stack“ erstellt hast?Wenn a.:
Standalones können auf keiner Platform gespeichert werden.Wenn b.:
Da es keinen „Speichern als…“ Dialog auf der mobilen Platform gibt, müsstest Du
dem Stack zunächst einen Dateinamen zuweisen und dann speichern!... set the filename of stack "Untitled 1" to "specialfoderpath("documents") & "/der_stack.livecode") save stack "Untitled 1" ## In Deinem eigenen Interesse gewöhn Dir an, aussagekräftige NAMEN zu vergeben!:-) ...
specialfoderpath(„documents“) ist der einzige Ordner auf der mobilen Platform, in dem wir Schreibrechte haben!
Du kannst aber auch nur die Daten in diesem Ordner speichern und beim nächsten Start wieder einlesen.
Falls ich Dich falsch verstanden haben sollte, bitte genauer erklären.
Gruß
Klaus
-
November 16, 2021 um 17:18 Uhr #38941
Hi Manni,
a. ist „Untitled 1“ Deine Runtime?
b. Oder ein Stack, den Du mit „create stack“ on-the-fly erstellt hast?Wenn a.:
Standalones können auf keiner Platform gespeichert werden.Wenn b.:
Da es keinen „Speichern als…“ Dialog auf der mobilen Platform gibt, müsstest Du
dem Stack zunächst einen Dateinamen zuweisen und dann speichern!... set the filename of stack "Untitled 1" to "specialfoderpath("documents") & "/der_stack.livecode") save stack "Untitled 1" ## In Deinem eigenen Interesse gewöhn Dir an, aussagekräftige NAMEN zu vergeben!:-) ...
specialfoderpath(„documents“) ist der einzige Ordner auf der mobilen Platform, in dem wir Schreibrechte haben!
Du kannst aber auch nur die Daten in diesem Ordner speichern und beim nächsten Start wieder einlesen.
Falls ich Dich falsch verstanden haben sollte, bitte genauer erklären.
Gruß
Klaus
-
November 16, 2021 um 18:27 Uhr #38946
Vielleicht nocb ein Hinweis hierzu:
Du kannst aber auch nur die Daten in diesem Ordner speichern und beim nächsten Start wieder einlesen.
Wenn ich Dich recht verstehe, handelt es sich um die zu speichernden Daten um den Inhalt eines Textfeldes. In dem Fall kannst Du so speichern:
... put specialfolderpath("documents") & "/total_wichtige_daten" into tDaten put the text of fld "was auch immer aktuell ist" into url("file:" & tDaten) ...
Dann beim Öffnen des Stacks/Standalone Daten einlesen, sofern vorhanden:
... ## checken, ob wir schon mal was gespeichert haben: put specialfolderpath("documents") & "/total_wichtige_daten" into tDaten ## Yep, schon mal gespeichert, dann wieder einlesen: if there is a file tDaten then put url("file:" & tDaten) into fld "was auch immer aktuell ist" of cd X end if ...
-
November 16, 2021 um 18:40 Uhr #38948
Hallo Klaus,
Antwort zu deiner Frage a.) Der Strack ist nicht mit „create strack“ erstellt worden, und somit die Runtime.
Um also „Untitled 1“ als meine Runtime speicherbar zu machen und das nach erneutem Aufruf der APP mit den geänderten Werten gearbeitet werden kann, wäre das Skript für den Speicherbutton also :
set the filename of stack „Untitled 1“ to „specialfoderpath“ & save stack „Untitled 1“ ??
Wenn das so funktioniert, tut sich für mich die nächste Hürde auf.
Wie und in welcher Skriptform (als Button oder im Stack) werden dann die Daten im Ordner „specialfoderpath“ auf dem Smartphone wieder eingelesen ?
Könntest Du mir ein Beispiel geben ?
Mit bestem Dank
Manni -
November 16, 2021 um 18:50 Uhr #38949
Sorry, kleiner Typo, es muss heissen specialfoLderpath(„resources“) foLder mit L.
set the filename of stack „Untitled 1“ to „specialfoderpath“ & save stack „Untitled 1“ ??
Das geht leider gar nicht, da „Untitled 1“ nun in dem Sinne kein Stack mehr ist, sondern die eigentliche Exe/App!
Falls Du wirklich den Stack speichern möchtest, musst Du da ganz anders rangehen.
Lies dazu bitte meinen Artikel „Stacks speichern in Standalones“ hier:
https://www.livecode-blog.de/forums/topic/stacks-speichern-in-standalones/Wie und in welcher Skriptform (als Button oder im Stack) werden dann die Daten im Ordner „specialfoLderpath“ auf dem Smartphone wieder eingelesen ?
Das passiert am besten:
on openstack put specialfolderpath("documents") & "/total_wichtige_daten" into tDaten ## Yep, schon mal gespeichert, dann wieder einlesen: if there is a file tDaten then put url("file:" & tDaten) into fld "was auch immer aktuell ist" of cd X end if ## Dein OPENSTACK Kram hier... ## ... end openstack
-
November 16, 2021 um 19:26 Uhr #38953
Hallo Klaus,
danke für die Informationen. Das ist eine menge Holz für Anfänger.
Ich habe nicht mit diesen Anforderungen an eine doch recht simple Funktion
in einer APP gerechnet.
Ich werde natürlich zuerst einmal deinen Artikel lesen und versuchen ihn zu verstehen.
Das braucht aber seine Zeit.
Nach Versuchen und Tests werde ich mich dann noch einmal melden.
Vorab bedanke ich mich und wünsche eine gute Zeit.
Grüße Manni -
November 16, 2021 um 19:42 Uhr #38954
Gern geschehen und gerne nachfragen!
Für die meisten Belange wird es wohl reichen, nur die Daten auf Platte
zu schreiben und später wieder einzulesen, wie ich oben erklärt habe.
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.