Startseite › Foren › Deutsches LiveCode-Forum › Liste speichern
- Dieses Thema hat 11 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 9 Monaten von
Klaus Major.
-
AutorBeiträge
-
-
Juni 24, 2021 um 14:01 Uhr #30053
Hallo,
wenn man einmal anfängt mit dem Programmieren….
…zugegeben, ich habe schon wieder das Buch verlassen, weil ich etwas auf dem Handy haben will. Nämlich eine Notizliste. Ich hab jetzt ziemlich lange nach Codes gesucht und mir dann Folgendes zusammen gebaut:on shutdown --Speicherordner festlegen set the defaultFolder to specialFolderPath("Documents") --Label speichern put the styledtext of me into URL ("file:AndroNotizen.txt") pass shutdown end shutdown on openStack --Speicherort festlegen set the defaultFolder to specialFolderPath("Documents") --Label laden put URL ("file:AndroNotizen.txt") into the styledtext of me end openStack
Zur Anwendung komme ich gar nicht, weil bereits im Code in der letzten Zeile vom openStack-Teil etwas falsch ist („can’t create a variable with that name“). Ja, wie, variable erstellen? Ich dachte, das versuche ich doch gar nicht….
…und ist der Rest schlüssig? Ich habe den Code in das Feld „fldNotizen“ geschrieben. Geht das, oder muss ich ihn auseinander ziehen und den defaultFolder in den Gesamtstack schreiben?
Ich hab das Gefühl, die Fragen werden eher mehr als weniger. Sorry. 🙂
Grüße!
Ixitixl -
Juni 24, 2021 um 14:21 Uhr #30055
Hi Ixitixl,
mehrere Sachen…
1. the styledtext of fld xyz
Liefert ein ARRAY zurück, was Du nicht einfach als Text speichern kannst,
es muss BINÄR sein! Ansonsten sind die Daten in der Datei korrupt!
Also:## Es gibt keinen Grund mit dem DEFAULTFOLDER rumzumachen, ## wenn wir doch komplette Pfadnamen zusammensetzen können. :-) put the styledtext of FIELD XYZ into URL ("BINfile:" & specialdfolderpath("documents") & "/AndroNotizen.txt")
2. Da das offensichtlich im Stackscript steht, bezieht sich OF ME natürlich auf den Stack,
der aber diese Property NICHT besitzt! Siehe oben, Du musst das Feld mit angeben.(„can’t create a variable with that name“). Ja, wie, variable erstellen? Ich dachte, das versuche ich doch gar nicht….
Doch, hast Du! 😀
3. „styledtext“ ist eine PROPERTY und keine Variable in die wir etwas PUTten können,
daher die Fehlermeldung in LC.
-> put 100 into the height of me
Ist natürlich Blödsin, wie Du zugeben musst, daher:... put specialfolderpath("documents") & "/AndroNotizen.txt" into tFile ## Immer wichtig, erst gucken, ob auch alles da ist, wo wir es vermuten! if there is a file tFile then set the styledtext of FIELD XYZ to url("binfile:" & tFile) end if ...
Gruß
Klaus
-
Juni 24, 2021 um 14:24 Uhr #30057
Wow, danke für die schnelle und ausführliche Antwort. Da probiere ich doch gleich Mal weiter.
Und korrupt möchte ich nichts und niemanden haben, volle Zustimmung. 😉 -
Juni 24, 2021 um 15:45 Uhr #30060
Es funktioniert!
Hat jetzt auch über eine Stunde gedauert, weil ich zwei Rechtschreibfehler drin hatte – und mich dann wunderte, dass nichts gespeichert wurde. ^^
-
Juni 24, 2021 um 15:48 Uhr #30061
Es funktioniert!
Das wundert mich irgendwie kein Bißchen! 😎
-
Juni 24, 2021 um 15:50 Uhr #30066
😛
-
-
Juni 24, 2021 um 17:54 Uhr #30069
Eine Sache fehlt noch:
Ich habe das jetzt von meiner Testapp auf die Hauptapp übertragen. Diese besteht aus mehreren Karten.
Ich vermute Mal, dass, ich im Skript:
----Notizfeld --Text speichern on shutdown put the text of FIELD "fldNotizen" into URL ("BINfile:" & specialfolderpath("Documents") & "/AndroNotizen.txt") pass shutdown end shutdown on openStack --Text laden put specialfolderpath("Documents") & "/AndroNotizen.txt" into tFile if there is a file tFile then set the text of FIELD "fldNotizen" to url("binfile:" & tFile) end if end openStack
jeweils noch den aktuellen Kartennamen einfügen muss.
Meine Ergänzung wie
put the text of FIELD "fldNotizen" of card "crdHauptseite" into URL ("BINfile:" & specialfolderpath("Documents") & "/AndroNotizen.txt")
(analog beim öffnen) und ähnliches (on, in) sind leider gescheitert. Das Programm meckert leider nicht. Kann mir hier noch jemand helfen?Dann wäre ich auch erst Mal still. 😉
-
Juni 24, 2021 um 18:08 Uhr #30070
„the text of fld xyz“ ist NICHT binär, sondern einfacher Text.
Daher ist hier nur FILE nötig, aber nicht BINFILE!iOs und Android sind „case-sensitive“ Betriebsysteme, daher sollte es so klappen:
... put the text of fld "fldNotizen" of card "crdHauptseite" into URL ("file:" & specialfolderpath("documents") & "/AndroNotizen.txt") ## -> documents, kleines d ...
Daher würde ich ALLES, also Dateinamen etc., KLEIN schreiben -> andronotizen.txt
So muss man sich nicht merken, ob ein Buchstabe groß geschreiben wurde oder nicht.P.S.
Ich habe einige Sachen wie FIELD/BINfile nur zur Verdeutlichung groß geschrieben! -
Juni 24, 2021 um 19:55 Uhr #30072
Danke für die vielen Tipps.
Leider funktioniert es immer noch nicht. Das ist jetzt mein Skript:
----Notizfeld --Text speichern on shutdown put the text of fld "fldNotizen" of card "crdHauptseite" into url ("file:" & specialfolderpath("documents") & "/AndroNotizen.txt") pass shutdown end shutdown on openStack --Text laden put specialfolderpath("documents") & "/AndroNotizen.txt" into tFile if there is a file tFile then set the text of fld "fldNotizen" of card "crdHauptseite" to url ("file:" & tFile) end if end openStack
Wenn da jetzt alles in Ordnung ist, dann muss ich schrittweise Mal die anderen Elemente aus der Datei schmeissen, bis ich das Hemmnis gefunden habe. Es befindet sich z. B. ein Switch drin, dass das fldNotizen versteckt (auch wenn ich jetzt alles auf sichtbar geschaltet habe) usw.. Ich hoffe, dass es nur eine Kleinigkeit im Code ist, den ich grade nicht sehe…
Aber danke für die Hilfe! Ich schaue morgen wieder drüber, vielleicht bin ich grad ja nur blind.
Lieben Gruß
Ixitixl -
Juni 24, 2021 um 20:00 Uhr #30073
Vielleicht ist shutdown nicht der richtige Zeitpunkt.
Bin mir auch nicht sicher, ob unter Android die App auch wirklich beendet wird.
Probiere mal closestack:on closestack put the text of fld "fldNotizen" of card "crdHauptseite" into url ("file:" & specialfolderpath("documents") & "/AndroNotizen.txt") end closestack
-
Juni 25, 2021 um 09:51 Uhr #30092
-
Juni 25, 2021 um 09:58 Uhr #30093
Ja, wenn Du zwei Handler mit dem gleichen Namen hast, nimmt LC immer den ersten, den es im Skript findet.
Dito bei zwei Objekten (button, Field etc.) gleichen Namens, dann nimmt LC das Objekt mit der niedrigsten Layer-Nummer
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.