Autor Beitrag
butterbrot
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 17.06.07 15:34 
Hallo,
ich habe ein simples Programm erstellt, das den Inhalt eines Editfeldes in einer Editordatei ausgibt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if
  FileExists (Name + '.txt')
then
  AssignFile (Datei, Name + '.txt')
else
  FileCreate (Name + '.txt');

Rewrite (Datei);
WriteLn (Datei, Content);
CloseFile (Datei);


Unsere Aufgabe (Informatikunterricht) ist es jedoch, beim späteren Öffnen oder häufigem Klicken des Buttons immer einen neuen Eintrag hinzuzufügen ohne den bisherigen Inhalt zu überschreiben. Dies ist mit der Verwendung von Rewrite nicht möglich. Was ich also suche ist ein Befehl, der die Datei öffnet, ans Dateiende springt, einen Zeilenumbruch macht und den neuen Eintrag hinzufügt (zumindest sollte es wohl in die Richtung gehen).

Außerdem verstehe ich nicht, warum ich diese Fehlermeldung erhalte,
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt p_20070617_Editorausgabe.exe ist eine Exception der Klasse EComponentError aufgetreten. Meldung: '''Dateiname.txt'' ist kein gültiger Komponentenname'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

wenn ich Name als Name + '.txt' direkt nach dem Auslesen deklariere.

Ich hoffe ich konnte mein Problem verständlich schildern.


Zuletzt bearbeitet von butterbrot am Di 19.06.07 21:32, insgesamt 1-mal bearbeitet
Wonko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 69



BeitragVerfasst: Mo 18.06.07 08:47 
:welcome:

Zum Anhängen an bestehende Dateien gibt es Append, damit wird Dir die Delphi-Hilfe weiterhelfen.

Zitat:
wenn ich Name als Name + '.txt' direkt nach dem Auslesen deklariere.

Was meinst Du mit "Auslesen" ?? Wie erstelltst Du den Dateinamen??
butterbrot Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 19.06.07 21:30 
Append funktioniert schon mal super, danke.

Zum Problem des Dateinamens:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if
  FileExists (Name + '.txt')
then
  AssignFile (Datei, Name + '.txt')
else
  FileCreate (Name + '.txt');

Momentan wird der Name aus einem Editfeld ausgelesen. Wie oben im Code zu sehen arbeite ich dann mit Name + '.txt'. Um das ganze aber felxibler zu machen würde ich es vorziehen die Dateiendung auch einer Variabel zuzuweisen.
Spontan würde ich das so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Name := edt_name.Text;
Format := '.txt';

Name := Name + Format;

if
  FileExists (Name)
then
  AssignFile (Datei, Name)
else
  FileCreate (Name);

Hierbei erhalte ich leider die oben erwähnte Fehlermeldung :(
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Di 19.06.07 21:51 
Benutze mal für Name einen anderen Variablenbezeichnung.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
butterbrot Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 19.06.07 21:55 
grml.. danke, funktioniert :)