Autor Beitrag
HenryHux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mi 16.02.11 16:48 
Hi, kriege diese Exception immer, wenn ich versuche etwas in eine Datei zu schreiben.
Sieht bei mir so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  Assign(Log, 'Log.txt');   // wird im klassen create aufgerufen
  if FileExists('Log.txt'then
    Append(Log)
  else
    Rewrite(Log);


und der Aufruf erfolgt so :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TLog.write(text : string);
begin
  Writeln(Log, text);
end;


Ich wüsste nicht, wo da der Fehler liegen sollte.
Wird allerdings in einem Thread aufgerufen, muss ich das synchronisiert aufrufen?

Lg


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 16.02.2011 um 16:16
gnomecoder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51
Erhaltene Danke: 5



BeitragVerfasst: Mi 16.02.11 18:01 
sollte es nicht Assignfile statt Assign heißen? :gruebel:
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 16.02.11 18:02 
Erstens das und zweitens fehlt der Pfad zur Datei.
www.delphi-library.d...ewtopic.php?p=499701
HenryHux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mi 16.02.11 18:08 
Gleiches Problem gibts auch mit AssignFile und "richtigem" Pfad...
Wenn ich nem TextFile mit AssignFile eine Datei zuweise und dann einmal mit Append aufrufe und immer wieder mit WriteLn etwas hinzufüge, müsste das doch funktionieren?

Edit : Habe den Fehler gefunden. Habe eine Prozedur, die Write hieß. Habe jedoch vergessen sie in einer Instanz aufzurufen, habe also nur write(x); dort stehen gehabt. Compiler hats zwar compiliert, war aber nicht die Prozedur die ich wollte.
Naja, danke für die Tips, ist trotzdem gut zu wissen =)

Lg