Startseite › Foren › Deutsches LiveCode-Forum › Speichern
- Dieses Thema hat 27 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahren, 4 Monaten von Klaus Major.
-
AutorBeiträge
-
-
Februar 15, 2018 um 22:16 Uhr #4238Anonym
Wie speichere ich am gescheitesten Dateien ab, damit ich sie auch nach Schliessung des Programmes wieder abrufen kann.(Sowohl bei Android wie auch Windows)
-
Februar 15, 2018 um 22:27 Uhr #4242
Hallo Pesche,
Windows -> specialfolderpath(“preferences”)
Android -> specialfolderpath(“documents”)Gruß
Klaus
-
Februar 16, 2018 um 11:12 Uhr #4250Anonym
Mit welchem Befehl speichere ich eine Variable ab und wie hole ich sie wieder?
-
Februar 16, 2018 um 11:26 Uhr #4251
Hallo Pesche,
ein kleines Beispiel:
... if the environment = "mobile" then ## Unter iOs und Android haben wir nur hier Schreibrechte! put specialfolderpath("documents") into tZielPfad else ## Wir sind auf Desktop Mac oder Windows ## und hier sollten wir unsere Prefs ablegen put specialfolderpath("preferences") into tZielPfad end if ## Nun den kompletten Pfad zusammenbasteln ## Da nur wir mit dieser Datei arbeiten, ist es Wuscht, ## wie sie heisst und ob sie ein Suffix hat put "/meine_prefs.prf" after tZielPfad put deine_variable_hier into url("file:" & tZielPfad) ## Fertig :-) ...
Gruß
Klaus
-
Februar 16, 2018 um 11:29 Uhr #4252
Ach so, wieder einlesen geht dann mit obiger Beispieldatei so:
... if the environment = "mobile" then ## Unter iOS und Android haben wir nur hier Schreibrechte! put specialfolderpath("documents") into tZielPfad else ## Wir sind auf Desktop Mac oder Windows ## und hier sollten wir unsere Prefs ablegen put specialfolderpath("preferences") into tZielPfad end if ## Nun den kompletten Pfad zusammenbasteln ## Da nur wir mit dieser Datei arbeiten, ist es Wuscht, ## wie sie heisst und ob sie ein Suffix hat put "/meine_prefs.prf" after tZielPfad ## IMMER zuerst alles überprüfen! if there is a file tZielPfad then put url("file:" & tZielPfad) into deine_variable_hier end if ## Fertig ...
-
Februar 16, 2018 um 13:02 Uhr #4253Anonym
Danke endlich klappts:):)
-
Februar 16, 2018 um 13:13 Uhr #4254
Ja, kaum macht man’s richtig, schon funktioniert’s! 🙂
-
Juni 4, 2018 um 16:02 Uhr #5951
Moin
Kann mir einer sagen ob folgendes funktionirt?on openStack
if there is a file data01 then
put url(“file:” & Kantine & “/Data01.txt”) into data01
put data01 into field “Fd1” of card “auswahl01”
put field “Fd1” of card “auswahl01” into field “Fd01” of card “menue”
end if
end openStackund
on mouseUp
put field “Fd01” into data01
put specialFolderPath(“documents”) into Kantine
if there is NOT a folder Kantine then
create folder Kantine
end ifput data01 into url(“file:” & Kantine & “/Data01.txt”)
if the result <> EMPTY then
answer “Fehler beim Schreiben der Datei!” & CR & the result
end if
end mouseUpWeil mein LiveCode immer noch nich den JDK Path findet, wäre es super nett (falls es so funktioniert) wenn mir das dann nochmal einer in ne apk umwandeln könnte!?!
Gruß Jan
-
Juni 4, 2018 um 16:12 Uhr #5953
Hallo Jan,
Du musst zuerst die Datei definieren, sonst läuft Dein IF IMMER ins Leere!
on openStack put specialfolderpath("documents") & "/Data01.txt" into tFile if there is a file tFile then put url("file:" & tFile) into data01 put data01 into field "Fd1" of card "auswahl01" put field "Fd1" of card "auswahl01" into field "Fd01" of card "menue" end if end openStack
on mouseUp put field "Fd01" into data01 put specialFolderPath("documents") into Kantine ## Dieser Ordner ist IMMER und ÜBERALL vorhanden! ## Das hier ist also überflüssig. ##if there is NOT a folder Kantine then ##create folder Kantine ##end if put data01 into url("file:" & Kantine & "/Data01.txt") if the result <> EMPTY then answer "Fehler beim Schreiben der Datei!" & CR & the result end if end mouseUp
Ich besitze weder Handy noch Tablet und entwickle nicht für die mobile Platform, daher kann ich Dir nicht mit einem APK dienen.
Gruß
Klaus
-
Juni 4, 2018 um 16:22 Uhr #5955
Trotzdem vielen Dank Klaus.
Wenn ich mehrere Felder habe, welche Zahlen muss ich dann beim openStack in 02 und so weiter ändern?
Wenn ich das weiß bekomm ich das für alle anderen hin! -
Juni 4, 2018 um 16:26 Uhr #5957
Hallo Jan,
Wenn ich mehrere Felder habe, welche Zahlen muss ich dann beim openStack in 02 und so weiter ändern?
tut mir leid, ich verstehe die Frage nicht?
Gruß
Klaus
-
Juni 4, 2018 um 16:28 Uhr #5959
funktioniert das dann so?
put specialfolderpath(“documents”) & “/Data01.txt” into tFile
if there is a file tFile then
put url(“file:” & tFile) into data01
put data01 into field “Fd1” of card “auswahl01”
put field “Fd1” of card “auswahl01” into field “Fd01” of card “menue”
end ifput specialfolderpath(“documents”) & “/Data02.txt” into tFile
if there is a file tFile then
put url(“file:” & tFile) into data02
put data02 into field “Fd1” of card “auswahl02”
put field “Fd1” of card “auswahl02” into field “Fd02” of card “menue”
end ifoder muss ich tFile aunoch ne Zahl zuweisen, wie z.B. tFile01, tFile02….
-
Juni 4, 2018 um 16:41 Uhr #5961
Ach so, verstehe, nein, die Variable “tFile” wird ja immer wieder überschrieben, also hat sie immer den korrekten Wert. Variablen sind durch aus “recyclebar”. 🙂
Hinweis:
Zugriff auf Variablen ist VIEEEEEEL schneller als der Zugriff auf Felder in Livecode, daher empfehle ich:
…
put data01 into field “Fd1” of card “auswahl01”
## put field “Fd1” of card “auswahl01” into field “Fd01” of card “menue”
put data01 into field “Fd01” of card “menue”
… -
Juni 4, 2018 um 16:49 Uhr #5963
OK, verstehe.
Vielen Dank -
Juni 5, 2018 um 12:51 Uhr #5992
Leider speichert er nicht die Daten wenn ich die App schließe 🙁
-
Juni 5, 2018 um 13:04 Uhr #5994
Wann und wo rufst Du denn Dein “Speichern”-Skript auf?
-
Juni 5, 2018 um 13:06 Uhr #5996
Also;
wenn ich in der App einen Wert in der “auswahl”card eintrage und dann den Zurück-Button drücke soll er das Speichern! -
Juni 5, 2018 um 13:07 Uhr #5998
https://ufile.io/07iiw
Hier hab ich den Stack hochgeladen -
Juni 5, 2018 um 13:30 Uhr #6000
Ok, sieht so aus, als hätten ALLE Deine “Zurück” Buttons ein Problem!
Button “btnBack” auf Karte “auswahl01”:
Die Variable “kantine” ist nirgendwo definiert.
Also gibt es die Fehlermeldung, die Du siehst, bitte so etwas immer hier mitteilen!Button “btnBack” auf Karte “auswahl03”:
Die Variable “data01” ist LEER, bzw, noch nicht mit Werten gefüllt.Auf allen anderen Karten wird es ähnlich aussehen, da musst Du aber nochmal ran…
Und das hier hatten wir doch auch schon:
... put specialFolderPath("documents") into Kantine if there is NOT a folder Kantine then create folder Kantine end if ...
???
-
Juni 5, 2018 um 14:07 Uhr #6002
sry bin nur blutiger Anfänger.
Habe auch keine Fehlermeldung bekommen, weil ich voller Euphorie das gleich umwandeln lassen hab und dann gleich auf dem Tablet laufen ließ.
Werde mich nochmal dransetzen.Danke dir Klaus
-
Juni 6, 2018 um 09:26 Uhr #6021
Funktioniert leider immer noch nich auf dem Tablet. Mag nochmal bitte einer draufgucken
-
Juni 6, 2018 um 09:51 Uhr #6023
Bleiben wir mal bei der Karte “auswahl01”, alle anderen Karten sind ja beinahe identisch.
Das Skript von Button “zurück” ist korrekt und erzeugt auf meinem Mac auch besagte Datei in meinem Dokumentenordner.Es SOLLTE also auch auf Deinem Handy funktionieren, keine Ahnung, warum es das nicht tut?!
Hier müssen Experten der mobilen Platform ran.Aber ein paar Hinweise zur Effektivität!
Hier ein “openstack” Handler, der ETWAS kürzer als Deiner, aber auch effektiver ist. 🙂on openstack ## Wir erzwingen eine führende NULL bei den Zahlen im Loop, ## damit wir Deine Numerierung im LOOP beibehalten konnen set numberformat to "00" ## Du hast 24 Karten, also möglicherweise auch 24 "Präferenzen" Dateien. ## Wir benutzen den LOOP, um alle benötigten Dateinamen zu erstellen und ## nacheinander abzuarbeiten. repeat with i = 1 to 24 ## Hiermit (setzen des numberformat PLUS anschliessender Rechenoperation) ## wird aus 1,2,3 etc. im LOOP 01,02,03 etc! put specialfolderpath("documents") & "/Data" & (i + 0) & ".txt" into tFile if there is a file tFile then put url("file:" & tFile) into tData ## ergibt im LOOP immer den korrekten Namen des Feldes! put tData into field "Fd1" of card ("auswahl" & i + 0) ## Wie gesagt, zugriff auf Variablen ist 1000* schneller als der Zugriff auf Felder! put tData into field ("Fd" & i + 0) of card "menue" end if end repeat go cd "menue" end openstack
Die Skripte der verschiedenen Buttons sind ja ähnlich gelagert und bieten viel Raum für Verbesserung. Aber lass dir das Skript erst mal auf der Zunge zergehen. 🙂
Kleine Frage, wie hast Du es geschafft, daß man in Deinem Stack kein Objekt mit der Maus auswählen kann? Ich muss über den “Project Brwoser” gehen, um Objekte auszuwählen etc.
Gruß
Klaus
-
Juni 6, 2018 um 15:18 Uhr #6025
Ok trotzdem danke.
Werde mir das mal anschauen.Beim Project Browser habe ich hinter jedem Objekt ein Auge für Visible/Invisible und ein Schloß mit dem ich die Objekte sperren kann.
Wenn man keine Ahnung hat, spielt man halt n bissl rum 😉 -
Juni 7, 2018 um 12:16 Uhr #6042
Werde mir das mal anschauen.
Das ist unbedingt anzuraten!
Und bitte frage nach, wenn Du etwas nicht verstehst, ich erkläre das gerne!Beim Project Browser habe ich hinter jedem Objekt ein Auge für Visible/Invisible und ein Schloß mit dem ich die Objekte sperren kann.
Ah, OK, das war MIR wiederum neu, hatte ich noch nie benutzt. 🙂
Wenn man keine Ahnung hat, spielt man halt n bissl rum ?
Ist ja auch OK, solange der Schuss nicht nach hinten losgeht!
Hier hat er mir, und allen, die sich den Stack angeschaut haben, das Leben etwas schwerer als nötig gemacht. 😎
-
Juni 10, 2018 um 16:25 Uhr #6070
habe es jetzt so versucht:
set the defaultFolder to specialFolderPath(“documents”)
put field “Fd1” into url(“file:/Data02.txt”)sagt das tablet:
“fehler beim schreiben der Datei!
can’t open file”beim testen auf dem rechner keine probleme
hab im netz sonst noch die variante open file, read from file, close file und write to file gefunden.
Wäre das ne Möglichkeit? sieht aber eher nach Windows aus -
Juni 10, 2018 um 16:36 Uhr #6072
Hi Jan,
es besteht kein Grund, den “defaultfolder” zu setzen, wenn man den absoluten Pfad nutzen kann!
Probiere mal Folgendes aus, wie ich es oben auch schon geschrieben hatte:... put specialFolderPath("documents") & "/Data02.txt" into tFile put field "Fd1" into url("file:" & tFile) ...
Oder, wenn es unbedingt mit DEFAULTFOLDER sein muss:
... set the defaultFolder to specialFolderPath("documents") put field "Fd1" into url("file:Data02.txt") ## OHNE Slash vor dem Namen! ...
Gruß
Klaus
-
Juni 10, 2018 um 16:45 Uhr #6074
Danke Klaus.
Ich versuche halt immer noch das Problem zu lösen, dass er nicht auf dem android tablet speichert beim Schließen der App. -
Juni 10, 2018 um 17:08 Uhr #6076
Ist mir schon klar, aber da “put xxx into url…” defintiv korrekte Syntax ist, schiesse ich hier ein wenig ins Blaue hinein.
Bitte auch immer unbedingt THE RESULT checken nach einem Schreibvorgang:
... put fld "F01" into url... if the result <> EMPTY then answer "Fehler beim Schreiben:" && the result end if ...
“can’t open file” bedeutet, daß wir hier keine Schreibrechte haben, was wir aber eigentlich im Dokumenten Ordner IMMER haben. daher sollte mal ein Experte für mobilen Kram sich der Sache hier annehmen.
Wenn “put xxx into URL…” nicht funktioniert, wird das von Dir oben erwähnte “open file” etc. auch nicht funktionieren.
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.