Entwickler-Ecke

Dateizugriff - Arbeiten mit Append


Sonneillon - Mo 22.02.10 14:13
Titel: Arbeiten mit Append
Hallo liebes Delphi-Forum

Möglicherweise bin ich zu dumm, die Suchfunktion zu benutzen aber da meine Frage ausgesprochen banal ist und ich nunmehr 3 Stunden daran arbeite, stelle ich sie hier einfach anhand eines Beispiels in den Raum:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ItemNewClick(Sender: TObject);
var  Blabla: TextFile;
begin
AssignFile(Blabla, 'Blabla.txt');
Append(Blabla.txt);
Writeln(Blabla,'TestTest');

end;


Fehler: 'Datei nicht gefunden'. Warum?

danke und gruß


Xentar - Mo 22.02.10 14:19

Vermutlich, weil du relative Dateipfade verwendest.


DonManfred - Mo 22.02.10 15:12

aus der OH: If no external file of the given name exists, an error occurs.

Also: Append geht nur wenn die Datei auch wirklich existiert. Existiert sie noch nicht musst du mit Rewrite arbeiten...


Sonneillon - Mo 01.03.10 13:14

Aber mit AssignFile() lege ich doch afaik eine Datei an. Wieso sollte sie also nicht existieren?

gruß


zuma - Mo 01.03.10 14:05

user profile iconSonneillon hat folgendes geschrieben Zum zitierten Posting springen:
Aber mit AssignFile() lege ich doch afaik eine Datei an. Wieso sollte sie also nicht existieren?

gruß


Du legst sie damit nicht an, sondern weist einer (Datei-)variablen den Namen einer Datei zu.
Auch hier hätte ein Blick in die OH dir weitergeholfen.


guinnes - Mo 01.03.10 14:06

user profile iconSonneillon hat folgendes geschrieben Zum zitierten Posting springen:
Aber mit AssignFile() lege ich doch afaik eine Datei an.

Ne, du stellst lediglich eine Verknüpfung zu einer Datei her,oder besser gesagt, du holst dir ein Handle auf diese Datei. Mit ReWrite legst du eine neue an


Horst_H - Mo 01.03.10 14:07

Hallo,

Assignfile macht noch nichts an der Festplatte.
Es legt nur Datenstrukturen für die Datei an.
Append müßte die Datei öffnen, wenn sie denn existiert:
Aus http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/System_Append.html
Zitat:
If no external file of the given name exists, an error occurs.

Vielleicht funktioniert etwas in der Art:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
AssignFile(Blabla, 'Blabla.txt');
try
  Append(Blabla)
except
  rewrite(Blabla
end;
Append(Blabla);
Writeln(Blabla,'TestTest');


Gruß Horst