AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

File löschen geht nicht

Ein Thema von Andidreas · begonnen am 6. Jul 2006 · letzter Beitrag vom 6. Jul 2006
Antwort Antwort
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

File löschen geht nicht

  Alt 6. Jul 2006, 11:44
hi, versuch grad die ganze zeit ein file zu löschen, und ein anderes umzubennen...
bloss des geht irgendwie net... des eine file wird net gelöscht und des andere wird net umbenannt, die pfade stimmen aber alle....

hier mal der code:

Delphi-Quellcode:
procedure TMain_Form.prNewFile(sFile : String);

var
bl : Boolean;
i, iLen : Integer;
sPathC, sPathR, sRowC, sRowR : String;
txtFileC, txtFileR : TextFile;
strFile : TFileStream;

begin

  //Create second File for latching
  sPathC := Copy(sFile, 1, 35) + '_C.txt';
  Try
    strFile := TFileStream.Create(sPathC, fmCreate);
  Finally
    strFile.Free;
  End;

  {$I-}

  //Assign File for Input
  sPathR := sFile;
  AssignFile(txtFileR, sPathR);
  Reset(txtFileR);

  //Assign File for Output
  AssignFile(txtFileC, sPathC);
  Append(txtFileC);

  //Copy Record from Input File to Output File
  While Not EOF(txtFileR) Do
  Begin
    Readln(txtFileR, sRowR);
    sRowC := sRowR;

    //Clear Apostrophe
    i := fnPosI('"', sRowC, 1);
    While i <> 0 Do
    Begin
      iLen := Length(sRowC);
      i := fnPosI('"', sRowC, 1);
      If i <> 0 Then
      Begin
        sRowC := Copy(sRowC, 1, i - 1) + Copy(sRowC, i + 1 , iLen);
      End;
    End;

    Writeln(txtFileC, sRowC);
  End;

  //Close File for Input and Output
  CloseFile(txtFileR);
  CloseFile(txtFileC);

  {$I+}
  bl := DeleteFile(sPathR);
  bl := RenameFile(sPathC, sPathR);


end;
sieht hier jemand im quelltext nen fehelr???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: File löschen geht nicht

  Alt 6. Jul 2006, 11:57
Moin Andreas,

prüf doch mal ob DeleteFile bzw. RenameFile erfolgreich ausgeführt wurden. Für den Fall, dass nicht, kannst Du Dir mit GetLastError und SysErrorMessage ja mal die Fehlerursache ausgeben lassen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#3

Re: File löschen geht nicht

  Alt 6. Jul 2006, 12:11
Hi, wenn die Pfade stimmen täten, täten sie auch deleten und renamen.
Probier mal ein

if fileexists(sPathR) then showmessage(sPathR) else showmessage('Fehler: Path/File nicht gefunden '+sPathR);

if fileexists(sPathC) then showmessage(sPathc) else showmessage('Fehler: Path/File nicht gefunden '+sPathc);

Dann siehste mal, was los ist. Geht auch in einem Konsolenprogramm wenn Du unter USES Dialogs einbindest. (ohne Gewähr!)
GO2EITS
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: File löschen geht nicht

  Alt 6. Jul 2006, 12:19
Zitat von Go2EITS:
Hi, wenn die Pfade stimmen täten, täten sie auch deleten und renamen.
Eine schreibgeschützte Datei kann nicht gelöscht werden.

Man muss erst den Schreibschutz mit
  SetFileAttributes(Dateipfad, FILE_ATTRIBUTE_NORMAL); entfernen, dann kann man die Datei löschen.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#5

Re: File löschen geht nicht

  Alt 6. Jul 2006, 12:56
@ste_ett
Klar, aber so sehe ich mal, ob dies mit dem Path wirklich stimmt.
Ich sehe aber nicht, warum normal erstellte Dateien hier schreibgeschützt sein sollten.
Grüsse Go2EITS
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: File löschen geht nicht

  Alt 6. Jul 2006, 13:00
hab mir die fehlermeldung ausgeben lassen (auf die idee hätte ich au selber kommen können )

aber der fehler verblüfft mich: datei wird von anderem prozess verwendet, datei kann nicht gelöscht werden...

ich geb doch die datei (als die ich löschen will) mit close file frei... und bis zum delete wird se ja au von nix anderem verwendet...

edit:

ok glaub verblüffen tut er mich jetzt nicht wirklich mehr...
glaub es liegt daran...

Delphi-Quellcode:
While iRC = 0 Do
  Begin
    iRC := FindNext(recDat);
    If iRC = 0 Then
    Begin
      sFile := 'S:\Prod\' + recDat.Name;
      iSt := fnApostroph(sFile);
      If iSt > 0 Then
      Begin
        [b]prNewFile(sFile);[/b]
      End;
    End;
End;
liegt wahrscheinlich daran das ich die prozedur aus dieser schleife aufruf und vermutlich kann er sie nicht löschen weil sie hier verwendet wird oder???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  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 04:36 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