[delphi] deletefile en closefile??

Pagina: 1
Acties:

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Ik heb echt een vreemd probleem. Ik open een bestand, lees daar iets uit, en wil het na afloop weghalen. Maar op de een of andere manier wil het niet lukken. Ik krijg altijd dat de file in gebruik is :?
code:
1
2
3
4
5
6
AssignFile(inp,filename);
Reset(inp);
...
CloseFile(inp);
...
DeleteFile(filename);

Wat is er nou fout???

edit: ik lees iets uit de file, filename is een variabele, en deletefile doe je met een filename. Ik heb dat in de prog goed gedaan, alleen hier fout.


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-09 14:04

Creepy

Tactical Espionage Splatterer

I.p.v. reset() gebruik je rewrite() mag ik hopen.

Kan zijn dat de aanpassingen nog niet daadwerkelijk in de file zijn weggeschreven (cache enzo). Misschien dat een flushfile() helpt voor je closefile().

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Tirillo
  • Registratie: Januari 2002
  • Niet online

Tirillo

Joker of Unauwen

filename moet iig tussen aanhalingstekens volgens mij..

en ook heel erg volgens mij:?.. deletefile werkt niet zo goed, in de help van delphi 5 staat ook dat je die beter niet kan gebruiken volgens mij..

...


Verwijderd

DeleteFile(FileName) Ipv DeleteFile(inp)?

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Op donderdag 06 juni 2002 13:33 schreef Tirillo het volgende:
filename moet iig tussen aanhalingstekens volgens mij..

en ook heel erg volgens mij:?.. deletefile werkt niet zo goed, in de help van delphi 5 staat ook dat je die beter niet kan gebruiken volgens mij..
Oh, bij mij staat dat er niet bij. D'er staat alleen
DeleteFile erases the file named by FileName from the disk. If the file cannot be deleted or does not exist, the function returns False.
.

En je moet een filename doen bij Deletefile :)


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


Verwijderd

Op donderdag 06 juni 2002 13:27 schreef Creepy het volgende:

I.p.v. reset() gebruik je rewrite() mag ik hopen.
hmz nee darkvater zegt dat hij uit het bestand wil lezen, dus moet hij RESET(inp) gebruiken om de pointer naar het begin van het bestand te zetten, bij REWRITE(inp) maak je het bestand leeg en klaar om er opnieuw in te schrijven dus klopt wel, ik vind het trouwens wel heel raar dat je dat bestand niet kan verwijderen...zou gewoon moeten werken..

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-09 14:04

Creepy

Tactical Espionage Splatterer

Op donderdag 06 juni 2002 15:59 schreef dascension het volgende:

[..]

hmz nee darkvater zegt dat hij uit het bestand wil lezen, dus moet hij RESET(inp) gebruiken om de pointer naar het begin van het bestand te zetten, bij REWRITE(inp) maak je het bestand leeg en klaar om er opnieuw in te schrijven dus klopt wel, ik vind het trouwens wel heel raar dat je dat bestand niet kan verwijderen...zou gewoon moeten werken..
*oops*
Dacht dat ie aan het schrijven was...
(ben echt niet wakker de laatste tijd...)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Je voorbeeld werkte perfect.
Maar je kunt het ook op de volgende manier proberen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
  FS: TFileStream;
  SS: TStringStream;
begin
  SS:=TStringStream.Create('');
  try
    FS:=TFileStream.Create('C:\Temp.txt', fmOpenRead);
    try
    SS.CopyFrom(FS, FS.Size);
    finally
    FS.Free;
    end;
    ShowMessage(SS.DataString);
  finally
    SS.Free;
  end;
  DeleteFile('C:\Temp.txt');
end;

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Op vrijdag 07 juni 2002 09:38 schreef hvdberg het volgende:
Je voorbeeld werkte perfect.
Maar je kunt het ook op de volgende manier proberen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
  FS: TFileStream;
  SS: TStringStream;
begin
  SS:=TStringStream.Create('');
  try
    FS:=TFileStream.Create('C:\Temp.txt', fmOpenRead);
    try
    SS.CopyFrom(FS, FS.Size);
    finally
    FS.Free;
    end;
    ShowMessage(SS.DataString);
  finally
    SS.Free;
  end;
  DeleteFile('C:\Temp.txt');
end;
Ik zal hier eens naar gaan kijken. Het vreemde is dat ik mijn voorbeeld gewoon apart heb gedaan, en dat ie het wel doet, alleen in de prog zelf niet, ook al doe ik CloseFile net voor DeleteFile (dus hij moet echt al gesloten zijn).

edit:
GEVONDEN!!! Ik als een stomme rund had dat bestand nog ergens anders in de programma open }:O


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge

Pagina: 1