Autor Beitrag
alex_id
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73



BeitragVerfasst: Do 06.02.03 02:26 
Hi
Ich habe folgene Procedure geschrieben jedoch bekomme ich immer eine Fehlermeldung und ich weiß nicht so recht weiter !!!

ausblenden 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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:

ausblenden Quelltext
1:
FileName := 'datei.dat';					

Wo landet die Datei. Sag jetzt nicht im Programmverzeichnis.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 06.02.03 08:13 
Und mach aus
ausblenden Quelltext
1:
FileS.Create(...					

folgendes:
ausblenden Quelltext
1:
FileS := TFileStream.Create(					

_________________
Ist Zeit wirklich Geld?
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Do 06.02.03 14:26 
hi ...

vorallem musst du nen Pfad angeben wo die Datei hin soll
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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:
ausblenden Quelltext
1:
 Stream := TFileStream.Create(ExtractFilePath (ParamStr (0)) + '/lalala.dat', fmCreate);					


Gruß
TINO
alex_id Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 73



BeitragVerfasst: Do 06.02.03 18:07 
Hi Leute

Danke für eure schnelle Hilfe !!!

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Fr 07.02.03 13:56 
ausblenden 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:

ausblenden 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;

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca