Dateizugriffe unter WinCE

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Dateizugriffe unter WinCE

Beitrag von dietmarf »

Hallo zusammen,

ich habe Probleme, wenn ich mit meinem Prog. unter Windows Mobile eine Datei öffnen will.
(Lazarus 0.9.21, Snapshot heute Vormittag runtergeladen + die Installer-exe für den Crosscompiler, Windows Mobile 5.0 auf einem XDA neo von O2)

Code: Alles auswählen

var
  (...)
  datenquelle: TStringList;
 
implementation
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  datenquelle := TStringList.Create;
  datenquelle.LoadFromFile('datei.txt');
  button3.Caption := datenquelle[1];
end;
die 'datei.txt' befindet sich im gleichen Verzeichnis wie meine exe-Datei. Wenn ich die Compilereinstellungen ändere und das ganze für Win2000 kompiliere und dort ausführe, klappt auch alles. Nur unter CE stürzt das Ganze ab. Es scheint erstmal nichts zu passieren und wenn ich dann ein Objekt im Formular anklicke kommt ein Dialog:

Unable to open file "datei.txt".
Press Ok to ignore and risk data corruption.
Press Cancel to kill the program
[OK] [Cancel]


Das Programm wird dann beendet, egal, was ich wähle.

Weiß jemand was?

Gruß
Dietmar

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

was passiert denn im debugger ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

den hab ich für WinCE ehrlich gesagt noch nicht am laufen... :oops:

Es kommt grds. eine Fehlermeldung, weil er die Datei unter Win2k nicht ausführen kann (auf dem Gerät habe ich keine WinCE Software installiert). Bekomme also Debugger-Fehler, egal ob alles klappt oder nicht...

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

du musst schon den wince debugger nehmen siehe der wiki wince seite
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

hmpf, active sync hätte ich eigentlich nicht installieren wollen, aber gut...
Hint: Start of reading config file C:\Programme\lazarus\fpc\2.1.1\bin\i386-win32\fpc.cfg
Hint: End of reading config file C:\Programme\lazarus\fpc\2.1.1\bin\i386-win32\fpc.cfg
Warning: You are using the obsolete switch -OG
Free Pascal Compiler version 2.1.1 [2007/01/16] for arm
Copyright (c) 1993-2006 by Florian Klaempfl
Target OS: WinCE for ARM
Compiling project1.lpr
Assembling project1
Linking project1.exe
18 lines compiled, 7.3 sec, 1012296 bytes code, 37776 bytes data
1 warning(s) issued
2 hint(s) issued
Projekt "project1" erfolgreich gebaut. :)
zur Laufzeit genau die gleiche Problematik, nur viel viel langsamer, da die Datei ohne strip über 9 MB hat. Habe aber die Datendatei in das Verzeichnis \gdb auf meinem XDA kopiert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

ja und was passiert nun im debugger das das ganze langsam ist weiss ich auch kannst ja aber n simulator nehmen zum debuggen da geht wenigstens das draufkopieren flott
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

es passiert nichts anderes, als ohne Debugger. Nur dass das Programm etwas weniger performant läuft. Ansonsten ist kein Unterschied zu erkennen. Habe hinterher "alle Meldungen auch versteckte" in die Zwischenablage kopiert, siehe oben. Ansonsten sind mir keine Meldungen - weder auf dem Rechner, noch auf dem mobilen Gerät aufgefallen. Wenn ich irgendwoher ausführlichere Debugger-Meldungen bekommen kann, werde ich das Ergebnis hier gerne posten. Den Debugger habe ich so eingerichtet, wie hier beschrieben.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Du nase, du sollst auch einen breakpoint an die speicherstelle setzen und in einzelschritten durchsteppen :)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

Nu, ich frag nicht ohne Grund so blöd - ich kann wirklich nur etwas Code schreiben und F9 drücken :roll: - mit Debuggen hatte ich bis jetzt herzlich wenig zu tun. Wenn was nicht lief, dann lag's bisher eigentlich immer am eigenen Quelltext und gut is. Hier ist es jetzt so, dass der gleiche Quelltext unter Win32 funktioniert und nichts sonderlich kompliziertes macht. Arg viel mehr lernt man bei so einem Informatik-Kurs am Gymnasium auch nicht :shock:

Wäre daher sehr nett, wenn Du an der Stelle etwas ausführlicher wärst :wink:

Hab heute auf Arbeit meinen Laptop mit Lazarus drauf nicht dabei und konnte mir so Debugger-Zeugs nur unter einer Delphi7 Personal-Installation kurz ansehen. Um dem Ganzen noch eins draufzusetzen: ich habe erstmal in meinem Delphi-Buch nachgeschaut. Jep, das Buch ist auf dem Niveau, das ich im Moment benötige, steht aber leider auch nicht viel zu Debugging drin. Ich denke mal, ich muss da dieses CPU-Fenster (so heißt's zumindest gerade bei Delphi7) anzeigen lassen. Auf was muss ich da achten?

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

>datenquelle.LoadFromFile('datei.txt');

Ich habe keine Ahnung von WinCE, aber hatte nicht jemand gesagt, dass es da kein "aktuelles Directory" gibt ?!?!? Dann muss doch vermutlich immer der komplette Pfad angegeben werden.

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

gut möglich ich hab auf wince noch nie versucht mit dateien zu arbeiten
(hab ja aber auch nicht sonderlich viel gemacht bisher)

Um nen Breakpoint zu setzen klickst du einfach auf das graue Feld neben der Zeile danach sollte die Zeile rot markiert sein und ein punkt auf der grauen fläche davor. wenn du das programm nun startest kommt in den punkt ein häkchen was bedeutet das der breakpoint aktiv ist wenn ein kreuz drin ist ist er nicht aktiv.
wenn das programm nun läuft und zu dieser stelle kommt hält es an und mit F7 bzw F8 kannst du durch das Programm durchsteppen und dir variablen anschauen und ähnliches Ft steppt dabei in Funktionen hinein und F8 über sie hinüber führt sie also aus ohne das du siest was drin passiert
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

werde das mit den absoluten Pfadangaben heute abend mal ausprobieren. Die Vermutung hört sich so banal an, dass der Hund mit Sicherheit da begraben ist - es sind allzuoft so Kleinigkeiten, an denen es letztendlich scheitert...

In dem Fall wäre es dann auch irgendwie cool, wenn die exe selbst rausfinden könnte, wo sie liegt und diesen Pfad beim Öffnen der Datei selbst hinzufügt...

Habe für den PC angefangen, mir ein kleines Wörterbuchprogramm zu schreiben, da es für Slowenisch keine wirklich befriedigende Lösung gibt. Auf dem PC läuft es schon einigermaßen und jetzt wäre es natürlich cool, das auch auf den PDA zu portieren. Und da die Daten von ein paar tausend Übersetzungen in den Quelltext einzubinden wäre irgendwie doof...

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ist ja richtig man braucht ja früher oder später immer dateizugriffe schon deshalb wär es schön das zu klären
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

war wohl doch nichts. :cry:

betreffende Zeile geändert auf
>datenquelle.LoadFromFile('\gde\datei.txt');
(gdb)


^done,value='"EFOpenError"'

dietmarf
Beiträge: 31
Registriert: Mi 17. Jan 2007, 10:19
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von dietmarf »

vielleicht sollte man auch statt \gde einfach \gdb schreiben..... :oops::oops: :oops:

geht doch! :lol:

Also hatte Michael doch recht:
Dateiangabe im Format \dir\file.xxx

Antworten