Thema: Delphi Fehler bei REWRITE

Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 16:05
Zitat von Chrissi91:
Schön, aber wie ihr sehen könnt, bin ich 14 Jahre alt
Kein Problem. War ich auch mal

Zitat:
Die Delphi - Hilfe ist Englisch.
Damit habe ich auch meine Probleme. Also werde ich mal den Code von mir etwas kommentieren.
filename := ExtractFilePath(ParamStr(0)) + 'Eintrage.txt'; In Delphi-Referenz durchsuchenParamStr stehen die Parameter die deinem Programm übergeben werden.
Wenn Du zum Beispiel dein Programm so aufrufst Programm.exe /blubb steht in PraramStr(1) ein "blubb".
Eine Besonderheit ist ParamStr(0). In diesem "Parameter" seht immer der komplette Pfad und Dateiname des Programmes.
Zum Beispiel "c:\Programme\Sharky\Test.exe".

Die Funktion Delphi-Referenz durchsuchenExtractFilePath extrahiert aus diesem String nun den Pfad zu dem Programm inkl. des letzten Backslash.
In dem Beispiel würde also
Code:
ExtractFilePath(ParamStr(0))
den String "c:\Programme\Sharky\" ergeben. An diesen String hänge ich jetzt einfach mit dem + den Namen der Datei.
Also ergibt
Code:
filename := ExtractFilePath(ParamStr(0)) + 'Eintrage.txt';
"c:\Programme\Sharky\Eintrag.txt".

Warum das ganze? Wenn Du nur den Namen der Datei angibst und keinen Pfad wird diese immer im aktuellen Verzeichniss erstellt/geöffnet. Dies ist aber nicht zwingend das Verzeichniss deiner Anwendung. Noch schlimmer: Das aktuelle Verzeichniss kann sich jederzeit (auch während dein Programm läuft) ändern!!

Code:
assignfile(datei2,filename);
hier wird der Variable datei2 der Dateiname inkl. Pfad zugewiesen. Da Du dies in jedem fall brauchst reicht es dies einmal im Code zu machen.
Delphi-Quellcode:
if not fileexists(filename) then //Wenn die Datei nicht Vorhanden ist dann:
  begin
    rewrite(datei2); // erzeuge sie
  end
  else // ansonsten
  begin
    reset(datei2); // öffne sie nur
  end;
  append(datei2); // Zum leten "Eintrag in der Datei" springen
  writeln(datei2, edit1.Text + ' ' + edit2.Text); // Etwas in die Datei schreiben
  closefile(datei2); // die Datei schliessen.
end;
Ich hoffe jetzt siehst Du etwas mehr Licht im dunklen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat