Hi,
also ich habe die Geschichte mit den lokalen Dateien getestet.
Eins vorweg...es funktioniert im Grunde (am PC). Zum Test unter Android kam es nicht...mir ist vorher der Geduldsfaden gerissen.
Alsooo...unter Firefox konnte ich das ganze völlig vergessen. Ich habe den Browser so konfiguriert, dass er beim Schließen den Cache und weiteren Kram löscht. Und das wollte ich nicht ändern.
So kam der Internet Explorer zum Zuge...auch hier gab es teilweise Probleme. Die gespeicherten Dateien waren manchmal da, manchmal nicht. Ich habe ihn dann ohne Erweiterung gestartet...und das würde ich jedem raten, so auch direkt in Spiderbasic einzustellen.
Unter Preferences -> Compiler muss hier bei "Web browser" folgendes eingetragen werden: "C:\Program Files\Internet Explorer\iexplore.exe" -extoff
Die Anführungszeichen müssen genauso gesetzt werden...und -extoff muss außerhalb der Anführungszeichen stehen!
In der Hilfe (nicht online, nur in der IDE
) gibt es ein Beispiel "FilePersistent.sb" welches die Grundzüge ein wenig darstellt.
Ich würde aber auch das Beispiel "File.sb" durchkauen wie man normalerweise Dateien öffnet und vor allem die beteiligten Anweisungen studieren.
Wichtig ist hier CreateFile(), OpenFile(), ReadFile(), ReadString(), OpenFileRequester().
Aufpassen...der Vorgang läuft hier anders ab als bei PureBasic...und zwar ungemütlich anders!
Um es auf den Punkt zu bringen...
Nur um eine einfache Textdatei auszulesen, muss man erstmal ein Schlachtfeld aus lauter Callbacks aufbauen und weiß dann auch gar nicht mehr, was wirklich passiert. Mir kommt das so unkontrolliert und völlig unübersichtlich vor.
Es läuft folgendermaßen...wenn man eine Datei öffnen will, erstellt man eine Prozedur, in der ein File-Requester geöffnet wird (nicht mehr). Diese Prozedur muss mit dem GadgetEvent (z.B. ein Button) gebunden werden. Event-Abfragen wie in Purebasic sind laut Hilfe dringend abgeraten und sie funktionieren auch nicht wirklich, da man zum Öffnen der Dateien (aus Browser-Sicherheitsgründen) eben diese Bindings braucht.
So weiter...diese FileRequester-Prozedur muss dann anschließend eine Callback-Prozedur aufrufen, in der nichts weiter gemacht wird, außer per ReadFile() eine weitere File-Read-Callback-Prozedur aufzurufen
So und in dieser letzten Prozedur kann man dann auf nochmals verumständlichte Art und Weise endlich die Datei auslesen.
Also um einen Buchstaben aus einer Datei zu lesen, braucht man:
1. Ein Binding im Hauptcode
2. Eine OpenFileRequester-Prozedur
3. Eine FileRead-Callback-Prozedur
4. Eine ReadString-Callback-Prozedur
Die ReadString-Callback-Prozedur muss noch einen bestimmten Aufbau haben, weil ihr aus Geisterhand Parameter übergeben werden (Status, Filename$, File, Size).
Wer also denkt, er schmeißt diese Prozeduren in eine zusammen, der irrt sich also...ich habe es selbst probiert. Das Programm läuft dann völlig unkontrolliert ab...Endlosschleifen, mehrere Ausführungen von Prozeduren (obwohl codetechnisch unmöglich), fehlende Buchstaben, usw...
Ich habe gemerkt, dass das Programm mit dem Ausführen eines Callbacks leicht außer Kontrolle geraten kann. Es wird ab diesem Zeitpunkt selbstständig und das Programm läuft nicht mehr nach der Regel ab...als würde man lauter Threads parallel starten, die aber alle auf die gleichen Variablen zugreifen...man kommt da nur dahinter, indem man überall Debug-Anweisungen setzt.
Zum Schluss:
Da ein Öffnen und Speichern von lokalen Dateien sehr unsicher ist (also vor Datenverlust), nutze ich es doch nicht. Zudem muss der der Name der Datei bekannt sein, wenn man sie öffnen will. Mit dem OpenFileRequester geht das nicht.
So, und die Standardmethode zum Öffnen anderer Dateien hat mich so umgehauen, dass ich Spiderbasic erstmal doch wieder pausieren werde. Es ist einfach nicht so effektiv wie PureBasic...im Grunde funktioniert es intern ganz anders. Und für meine Zwecke taugt es einfach nicht so.
Ich hoffe, ich habe jetzt nicht zu zerstreut geschrieben und konnte meine Erfahrung einigermaßen rüberbringen...