Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei löschen ohne genauen Pfad!? (https://www.delphipraxis.net/86346-datei-loeschen-ohne-genauen-pfad.html)

M-RaxXxoR 12. Feb 2007 22:58


Datei löschen ohne genauen Pfad!?
 
Moin!,

ich und ein paar andere Leute haben ein und dasselbe Programm auf dem Pc. Jetzt muss eine Datei aus einem Ordner gelöscht werden, was ich mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Delete('c:\Programme\test.txt') then
...
mache. Funktioniert auch gut aber nicht wenn ich den genauen Pfad weiß denn sicherlich ist nicht bei jedem Pc der Pfad c:\...
Also probierte ich es mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Delete('%programfiles%\test.txt') then
...
und das haut irgendwie mal garnicht hin :(
Der findet die Datei dann nicht. Welchen befehl muss ich dann nehmen. Kann mir jemand helfen?
Ich veruche es jetzt schon seit 2 Tagen ALLEINE rauszukriegen aber...naja. :wall:

MfG RaxXxoR

richie 12. Feb 2007 23:01

Re: Datei löschen ohne genauen Pfad!?
 
Wenn die Datei in dem Verzeichnis deiner Exe ist, dann mit
Delphi-Quellcode:
ExtractFilePath(Application.ExeName)
:)

TonyR 12. Feb 2007 23:12

Re: Datei löschen ohne genauen Pfad!?
 
du willst die Umgebungsvariable nutzen???
Delphi-Quellcode:
if Delete(getenvironmentvariable('programfiles')+'\test.txt') then ...
PS: Wilkommen in der DP :wink:

M-RaxXxoR 12. Feb 2007 23:39

Re: Datei löschen ohne genauen Pfad!?
 
Aaaaaaaah, herrlich. Ihr habt es drauf Jungs. :-D
Könnt ihr mir noch sagen wie ich andere Dateien mit in meine EXE einbinde. Das kapiere ich garnicht. Irgendwier soll ich das mit Ressourcen machen hat mir mal jemand gesagt? Aber kP :roll:

TonyR 12. Feb 2007 23:44

Re: Datei löschen ohne genauen Pfad!?
 
da musst du mal suchen... gibts schon ein haufen tutorils und so...

Buddelflink 12. Feb 2007 23:48

Re: Datei löschen ohne genauen Pfad!?
 
Zitat:

Zitat von M-RaxXxoR
Aaaaaaaah, herrlich. Ihr habt es drauf Jungs. :-D
Könnt ihr mir noch sagen wie ich andere Dateien mit in meine EXE einbinde. Das kapiere ich garnicht. Irgendwier soll ich das mit Ressourcen machen hat mir mal jemand gesagt? Aber kP :roll:

Aaaaah, etwa die gelöschte Datei durch eine gleichnamige ersetzen :shock:. Irgendwoher kenne ich das :gruebel:

PS: neue Frage, neuer Thread

Blackheart 12. Feb 2007 23:49

Re: Datei löschen ohne genauen Pfad!?
 
Schau mal hier
http://www.delphipraxis.net/internal...ct.php?t=87302
Und noch etwas Werbung für mein Prog
http://www.delphipraxis.net/internal...ct.php?t=93819

M-RaxXxoR 13. Feb 2007 00:05

Re: Datei löschen ohne genauen Pfad!?
 
Danke für das Tut mit den Ressourcen. Aber das mit der Umgebungsvariable haut nicht hin :cry:
Lässt sich nicht Debuggen. Ich sollte vielleicht noch was ergänzen. Da dies nicht mit in der Liste stand hab ich gleub ich Delphi 2005 Professional angeklickt habe aber Delphi 2005 Express Edition, da ich zum Üben nicht mindestens 100€ dafür ausgeben will. Aber gibt es noch eine andere Möglichkeit?

Es geht um eine Ini Datei von einem Spiel um genau zu sein. Ich will sie durch keien gleichnahmige ersetzen.

Geiles Prog :-D

TonyR 13. Feb 2007 09:07

Re: Datei löschen ohne genauen Pfad!?
 
Zitat:

...Aber das mit der Umgebungsvariable haut nicht hin...
Was sagt der Compiler denn, was nicht ganz richtig sei???

himitsu 14. Feb 2007 12:07

Re: Datei löschen ohne genauen Pfad!?
 
Der sagt nichts, denn Umgebungsvariable werden von diesen Funktionen nicht übersetzt.
d.h. die Umgebungsvariable wird als Verzeichnisname angesehn, womit das ganze dann eine relative Pfadangabe wäre.

Das Resultat: die angegebene Datei existiert einfach nicht und kann demnach nicht gelöscht werden. :zwinker:

Lösung: du mußt die Umgebungsvariablen selber übersetzten!
(ich hatte mir dafür mal 'ne Funktion geschrieben ... mal sehn ob die noch existert)

TonyR 14. Feb 2007 12:13

Re: Datei löschen ohne genauen Pfad!?
 
ich dachte bloß dass raxxxor mit
Zitat:

...lässt sich nicht debuggen...
vielleicht "lässt sich nicht compilieren" meint (weil es mir anders irgendwie komisch vorkommt) und da dachte ich er hat bloß was falsch eingegeben [weil "environmentvariable" ist ein nicht grad so einfaches Wort :wink: ]

M-RaxXxoR 15. Feb 2007 16:37

Re: Datei löschen ohne genauen Pfad!?
 
Doch ich kann es compilieren, aber die Datei ist noch immer da! Tonyr kenne ich dich von cheaterelite?
Gibt es noch andere Möglickeiten? Was ich auch versuche, dass will einfach nicht klappen mit der Umgebungsvariable!? :wall:

TonyR 15. Feb 2007 17:34

Re: Datei löschen ohne genauen Pfad!?
 
Am besten du lässt dir die Umgebungs-Variable mal anzeigen (mit showmessage oder so...)
Delphi-Quellcode:
var Pfad: string;
...
pfad:=GetEnvironmentVariable('programfiles');
showmessage(pfad);
DeleteFile(pfad+'\Datei.dat');
Mit dem Anzeigen kannst du vielleicht rekonstruieren, dass der falsche Pfad zur Datei vorliegt (aufgrund der relativen Pfad-Angabe...)

Und wenn das jetzt immer noch nicht klappt und du es dir nicht erklären kannst warum, dann weis ich auch nicht weiter...
Da kannst du vielleicht noch die Api-Funktion zum Dateilöschen verwenden (zu finden bei www.dsdt.info), wobei es dann aber sichtbar wird, dass eine Datei gelöscht wird.

shmia 15. Feb 2007 17:52

Re: Datei löschen ohne genauen Pfad!?
 
Die Zauberfunktion heist ExpandEnvironmentStrings() bzw. ExpandEnvironmentStringsForUser()


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz