Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kann Pfad in Label.Caption nicht ausgeben (https://www.delphipraxis.net/171654-kann-pfad-label-caption-nicht-ausgeben.html)

Bummi 17. Nov 2012 17:40

AW: Kann Pfad in Label.Caption nicht ausgeben
 
Delphi-Quellcode:
var
  str: string;
begin
  str := ExtractFilePath(ParamStr(0)) + 'Uebersicht.txt';
  if FileExists(str) then
  begin
    Label1.caption := ('Datei existiert') + ' ' + str)
    Listbox1.items.LoadFromFile(str);
  end
  else Label1.caption := 'Datei existiert nicht';
end;

cookie22 17. Nov 2012 18:26

AW: Kann Pfad in Label.Caption nicht ausgeben
 
Delphi-Quellcode:
str := ExtractFilePath(ParamStr(0)) + 'Uebersicht.txt';

himitsu 17. Nov 2012 18:36

AW: Kann Pfad in Label.Caption nicht ausgeben
 
Zitat:

Zitat von Codix32 (Beitrag 1191718)
Ok, ich habs

Falsch.

Wie bereits genannt, solltest du unbedingt von relativen Pfaden Abstand nehmen, das bereitet eh nur Probleme.



Tipp:
Lege mal probehalber einen TOpenDialog auf deine Form und dann schreib
Delphi-Quellcode:
OpenDialog1.Execute;
an den Anfang deiner Prozedur. (vor das
Delphi-Quellcode:
if FileExists...
).
Nun startest du dein Programm und wählst in diesem Dialog z.B. irgendeine Datei in C:\Windows aus.
Und jetzt freu dich darüber, daß dein FileExist nichts mehr findet. :stupid:

Oder statt des Opendialog, erstellst du einen Link zu deinem Programm (auf'm Desktop rechtklick > Neu > Verknüpfung).
Wenn diese Existierst, gehst du davon in die Dateieigenschaften und schreibst bei "Ausführen in" das "C:\Windows" rein.
Nach dem Starten des Programms kannst du dich ebenfalls über das Nichtauffinden freuen.

Perlsau 17. Nov 2012 21:30

AW: Kann Pfad in Label.Caption nicht ausgeben
 
Zitat:

Zitat von Codix32 (Beitrag 1191677)
Hallo und ich werde gleich mal schamhaft rot, aber:
Ich kann tatsächlich keinen Dateipfad im Label ausgeben, wenn die Datei im selben Ordner wie das Programm liegt.
Delphi-Quellcode:
Label1.caption:='.....' + ExtractRelativePath('Uebersicht.txt','');
{oder:}
Label1.caption:='.....' + ExtractFilePath('Uebersicht.txt');
Beide liefern nur das '.....' und einen Leerstring, aber keinen Pfad.
Welche Procedur oder Function gibt mir in diesem Fall den Pfad an?

Wenn dein Delphiprogramm die Datei Uebersicht.txt findet, dann ist das Zufall, weil dein Programmverzeichnis, in dem sich die Datei befindet, gerade ausgewählt ist. Dein Programm kennt aber nicht den vollständigen Dateinamen der Datei Uebersicht.txt, solange du dem Programm diesen nicht mitteilst. Dein Programm weiß also nicht von alleine, welche Dateien in welchen Ordnern stehen, das mußt du erst via Code ermitteln. Deshalb kannst du auch kein ExtractFilePath auf einen Dateinamen ohne Pfadangaben machen, denn diese Funktion soll ja den Pfad aus dem vollständigen Dateinamen extrahieren, und wenn da kein Pfad drin ist, dann heißt das Ergebnis Leerstring. Die Funktion ExtractFilePath hat nichts mit dem Windows-Dateisystem zu tun, sondern separiert einfach aus einem String eine bestimmte Struktur, völlig unabhängig davon, ob da irgendwo entsprechende Pfade oder Dateien existieren.

Na, Denkfehler erkannt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Seite 2 von 2     12   

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