Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem mit Dateinamen aus Pfad Filtern.


der Berliner - Mi 15.10.08 17:15
Titel: Problem mit Dateinamen aus Pfad Filtern.
HAllo zusammen..

ich habe folgenden DateiPfad in einer Stringvariablen s.
z.B.:


Delphi-Quelltext
1:
s := D:\Test\Test1\Test3\Daten.xls                    


wie stelle ich es an das in der Variablen s nur noch Daten.xls steht ????

Der Pfad könnte auch noch mehr Unterordner haben.
Ich müsste also alles von links bis zum letzten backslash löschen.
oder alles ab dem ersten backslash von rechts..aber wie ?

Gruß
Andre


Xentar - Mi 15.10.08 17:17


Delphi-Quelltext
1:
ExtractFilename()                    


der Berliner - Mi 15.10.08 17:26

Danke für die schnelle Antwort.

Aber was ist wenn den Filename zur Laufzeit noch nicht kenne.

gibt es nich ne Lösung wie rightString oder leftstring.

Gruß Andre


LexXis - Mi 15.10.08 17:34

Wenn du Funktionen aufrufst ohne überhaupt zu wissen, ob du die nötige Parameter dafür schon zusammen hast, solltest du deine Programmstruktur nochmal überdenken ;)

Aber mal angenomme du fütterst ExtractFileName() mit einem String (ob leer oder irgendwas anderes drin), der keine Dateiangabe enthält, dann ist der Rückgabewert der selbe wie der/die/das Parameter.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  FileName: String;
  PathAndFile: String;
begin
  {...}

  PathAndFile := 'IrgendeinText';
  FileName := ExtractFileName(PathAndFile);
  // => FileName = 'IrgendeinText'

  PathAndFile := '';
  FileName := ExtractFileName(PathAndFile);
  // => FileName = ''

  {...}
end;


mfg


der Berliner - Mi 15.10.08 17:40

Ok Danke

Habs gerade nochmal getestet...funktioniert doch nach meinen wünschen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
var
 s1:String;
begin
OpenDialog1.Execute;
s1:=ExtractFilename(openDialog1.FileName);
Edit1.text:=s1;
end;


Vielen dank nochmal
Andre


Delete - Mi 15.10.08 17:47

Du solltest das etwas anders formulieren, da man den Dialog auch abbrechen kann.

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Edit1.text := ExtractFilename(openDialog1.FileName);
end;


der Berliner - Mi 15.10.08 17:50

Is schon klar, war nur zum probieren.

Muß an dieser Stelle mal das Forum loben.
In anderen Delphi foren bekommt man nur patzige Antworten.
Das is das hier die reinste wohltat.

Danke
Andre