AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TXT - Datei in IF - Abfrage löschen.
Thema durchsuchen
Ansicht
Themen-Optionen

TXT - Datei in IF - Abfrage löschen.

Ein Thema von Chrissi91 · begonnen am 30. Jan 2006 · letzter Beitrag vom 30. Jan 2006
Antwort Antwort
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 09:29
Hi ,

wieder mal eines meiner Probleme:

ich habe eine IF - Abfrage, ob eine Datei existiert. Dann lösche ich diese in der IF - Abfrage und mache danach noch etwas.

Delphi-Quellcode:
var
  zeilen, i: integer;
  inhalt: array [1..100] of string;
  hilf: string;
  datei: textfile;
  geloescht: boolean;
begin
 if fileexists(ExtractFilePath(ParamStr(0))+'\Ressourcen\'+edtTitel2.Text+'.txt') then //Sie existiert.
  begin
   geloescht:=false;
   deletefile(ExtractFilePath(ParamStr(0))+'\Ressourcen\'+edtTitel2.Text+'.txt'); // Macht er nicht.

   assignfile(datei,ExtractFilePath(ParamStr(0))+'\Ressourcen\liste.txt'); //Ab hier an, macht er alles
   reset(datei);
   zeilen:=0;
   repeat
    zeilen:=zeilen+1;
    readln(datei,hilf);
    if hilf <> edtTitel2.Text then inhalt[zeilen]:=hilf else geloescht:=true;
   until eof(datei);
   closefile(datei);
...
Warum löscht er die Datei mit

deletefile(ExtractFilePath(ParamStr(0))+'\Ressourcen\'+edtTitel2.Text+'.txt'); nicht? Er fragt ob, ob sie exisitiert, und dann löscht er sie nicht?

Habe ich irgendetwas übersehen?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 09:54
Hi Christopher,

probiere es nochmal so:

Delphi-Quellcode:
var
  fn: TFileName;
begin
  fn := ExtractFilePath(ParamStr(0)) + 'Ressourcen\' + edtTitel2.Text + '.txt';
  if FileExists(fn) then
  begin
    DeleteFile(fn);
    if FileExists(fn)
      then ShowMessage('delete failed')
      else ShowMessage('file deleted');
  end else ShowMessage('file not found');
ExtractFilePath liefert schon einen TrailingPathDelimiter - und den Dateinamen würde ich nur einmal zusammenbauen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 10:00
aus der Delphi.Hilfe:
Zitat:
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
klar, was Du tun solltest?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#4

Re: TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 10:04
Zitat von marabu:
Hi Christopher,

probiere es nochmal so:

Delphi-Quellcode:
var
  fn: TFileName;
begin
  fn := ExtractFilePath(ParamStr(0)) + 'Ressourcen\' + edtTitel2.Text + '.txt';
  if FileExists(fn) then
  begin
    DeleteFile(fn);
    if FileExists(fn)
      then ShowMessage('delete failed')
      else ShowMessage('file deleted');
  end else ShowMessage('file not found');
ExtractFilePath liefert schon einen TrailingPathDelimiter - und den Dateinamen würde ich nur einmal zusammenbauen.

Grüße vom marabu
Alles klar. Teste ich gleich. Danke Marabu.



Zitat von RavenIV:
aus der Delphi.Hilfe:
Zitat:
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
klar, was Du tun solltest?
Hoffe ich.

Also soll ich mir den Fehler anzeigen lassen. Der Rückgabewert könnte 0 sein.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 10:14
Hallo RavenIV,

auch für mich lohnt sich scheinbar hin und wieder ein Blick in die Online-Hilfe. Du hast die Hilfe zur API Funktion zitiert - es gibt aber eine Delphi Kapsel in SysUtils, die aufgerufen wird:

Delphi-Quellcode:
var
  fn: TFileName;
begin
  fn := ExtractFilePath(ParamStr(0)) + 'Ressourcen\' + edtTitel2.Text + '.txt';
  if DeleteFile(fn)
    then ShowMessage('file deleted')
    else ShowMessage(SysErrorMessage(GetLastError));
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 10:15
Zitat von Chrissi91:

Hoffe ich.

Also soll ich mir den Fehler anzeigen lassen. Der Rückgabewert könnte 0 sein.
richtig.
bei Fileoperationen sollte man immer den Rückgabewert prüfen und entsprechend darauf reagieren.
(z.B. den Benutzer aufmerksam machen)
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#7

Re: TXT - Datei in IF - Abfrage löschen.

  Alt 30. Jan 2006, 10:31
Aha. Danke Marabu. Durch GetLastError konnte ich herausfinden, dass icht auf die Datei zugegriffen werden konnte. Es kam eine deutsche Fehlermeldung(Ich habe doch aber die englische D7 PE)

Ich habe in einer anderen Procedure das "Closefile" vergessen. ^^

Danke an alle, die mir geholfen haben.

Da ist das Geburtstaggeschenk für meinen Vater noch rechtzeitig fertig. ^^
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz