Entwickler-Ecke
Dateizugriff - Probleme mit TFileStream
alex_id - Do 06.02.03 02:26
Titel: Probleme mit TFileStream
Hi
Ich habe folgene Procedure geschrieben jedoch bekomme ich immer eine Fehlermeldung und ich weiß nicht so recht weiter !!!
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Procedure Form1.Save; var FileS : TFileStream; FileName : String;
Begin FileName := 'datei.dat'; Try FileS.Create((FileName, fmOpenWrite); FileS.WriteBuffer(UserSave, SizeOf(user_daten_save)); except ShowMessage('error'); end; FileS.Free; End; |
Alex
Delete - Do 06.02.03 03:20
Ist ja schön, dass du den Source gepostet hast. Aber warum verschweigst du uns die Fehlermeldung? Ist das ein Geheimnis? :roll:
Quelltext
1:
| FileName := 'datei.dat'; |
Wo landet die Datei. Sag jetzt nicht im Programmverzeichnis.
Quelltext
1:
| FileS.Create((FileName, fmOpenWrite); |
Wie viele Klammer öffnest du und wie viele machst du wieder zu?
Was ist UserSave und user_daten_save? :roll:
Setz mal das FileS.Create... vor das try.
AndyB - Do 06.02.03 08:13
Und mach aus
folgendes:
Quelltext
1:
| FileS := TFileStream.Create( |
maximus - Do 06.02.03 12:04
nochwas...ich würd ..Create(FileName, fmCreate);
nehmen, da sonst, wenn deine daten mal kürzer sind, die alten noch überlappen.
BungeeBug - Do 06.02.03 14:26
hi ...
vorallem musst du nen Pfad angeben wo die Datei hin soll
Quelltext
1:
| Stream := TFileStream.Create('./lalala.dat', fmCreate); |
erstellt eine Datei im Prog-Verzeichniss .. ansonsten musst du den gesammten Pfad wo du hin willste angeben ... alles andere für unwillkürlich zu einem Error :)
MfG BungeeBug
Tino - Do 06.02.03 14:42
| BungeeBug hat folgendes geschrieben: |
| erstellt eine Datei im Prog-Verzeichniss |
Das glaube ich nicht. Ich denke bei Deiner o. g. Art wird die Datei in dem aktuellen Arbeitsverzeichnis erstellt.
Gruß
TINO
BungeeBug - Do 06.02.03 15:28
ups ... jaja recht du hast ... aber im normal fall is ja das "Prog-Verzeichniss" das "Arbeitsverzeichniss" von daher denk ich das das nicht das Problem da stellen sollte ?!
MfG BungeeBug
Tino - Do 06.02.03 17:41
Davon auszugehen das das Arbeitsverzeichnis gleich dem Programmvezeichnis ist... ist mist! Deshalb sollte man folgendes benutzen um sicher zu sein das die Datei auch im Programmverzeichnis erstellt wird:
Quelltext
1:
| Stream := TFileStream.Create(ExtractFilePath (ParamStr (0)) + '/lalala.dat', fmCreate); |
Gruß
TINO
alex_id - Do 06.02.03 18:07
Hi Leute
Danke für eure schnelle Hilfe !!!
Quelltext
1:
| FileS.Create((FileName, fmOpenWrite); |
| Zitat: |
Wie viele Klammer öffnest du und wie viele machst du wieder zu?
|
-> das war ein Tippfehler da ich mehreres probiert hatte ... sorry
eigentlicher Fehler war das ich nicht das Verzeichtnis mit angegeben hatte !!!! :roll:
Alex
Manchmal übersieht man die kleinen Dinge, die aber von Bedeutung sind :!:
DaRkFiRe - Fr 07.02.03 13:56
Quelltext
1:
| FileS.Create((FileName, fmOpenWrite); |
meiner meinung nach entsteht dort immer ein Fehler, liegt es doch daran, dass FileS nicht mal initialisiert wurde. mir wäre auch unbekannt, dass delphi schon automatisch alle lokalen variablen vorinitialisiert, sodass das objekt bereits existiert
mein vorschlag:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| Procedure Form1.Save; var FileS : TFileStream; FileName : String;
Begin FileName := 'datei.dat'; Try IF FILEEXISTS(FileName) THEN FileS:=TFileStream.Create(FileName, fmOpenWrite) ELSE FileS:=TFileStream.Create(FileName, fmCreate); FileS.Write(UserSave, SizeOf(user_daten_save)); except ShowMessage('error'); end; FileS.Free; End; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!