Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi OpenDialog FileName? (https://www.delphipraxis.net/12857-opendialog-filename.html)

avadex 5. Dez 2003 10:55


OpenDialog FileName?
 
Hallo,
ich habe ein kleines problem! Ich habe in meinem Programm einen OpenDialog mit dem man eine Datei auswählt. Der Dateiname soll dann in einem Label angezeigt werden.
Habe das dann natürlich so gemacht:

Delphi-Quellcode:
OpenDialog1.Execute;
Label1.Caption := OpenDialog1.FileName;
So, nur jetzt wird mir der komplette Pfad angezeigt! Wie kann ich es ändern, dass wirklich NUR der Dateiname + Endung angezeigt wird? Also ohne Pfad?

Danke

choose 5. Dez 2003 10:58

Re: OpenDialog FileName?
 
Hallo avadex,

herzlich willkommen bei der Delphi-PRAXiS!

Sieh mal in der Delphi-Online-Hilfe (OH) unter ExtractFileName und ExtractFilePath nach...

avadex 5. Dez 2003 11:02

Re: OpenDialog FileName?
 
super, danke! hat mir sehr geholfen! :-D

migi 5. Dez 2003 11:06

Re: OpenDialog FileName?
 
Hallo avadex,

noch ein kleiner Tipp, um Fehler zu vermeiden. Ändere deinen Befehl wie folgt:

Delphi-Quellcode:
if OpenDialog1.Execute then
  Label1.Caption := OpenDialog1.FileName
else
 // Öffnen wurde abgebrochen, OpenDialog1.FileName ist leer
;
Grüße

Michael

avadex 5. Dez 2003 12:31

Re: OpenDialog FileName?
 
Zitat:

Zitat von migi
Hallo avadex,

noch ein kleiner Tipp, um Fehler zu vermeiden. Ändere deinen Befehl wie folgt:

Delphi-Quellcode:
if OpenDialog1.Execute then
  Label1.Caption := OpenDialog1.FileName
else
 // Öffnen wurde abgebrochen, OpenDialog1.FileName ist leer
;
Grüße

Michael

ja richtig, hab ich gemacht, danke dir!

Matze 5. Dez 2003 12:57

Re: OpenDialog FileName?
 
Hi!

Ich denke, das passt hier auch rein. ;)

Wie bekommt man eigentlich die Endung weg?
Mit pos kann ich das ja nicht lösen, da ich jede Endung manuell einstellen müsste, was ja unmöglich ist. :gruebel:

Nalincah 5. Dez 2003 13:01

Re: OpenDialog FileName?
 
Gibt Verzeichnis zurück
Delphi-Quellcode:
function Verzeichnis(Filename:String):String;
var
  i :integer;
begin
  for i := length(Filename) downto 0 do
  begin
    if Filename[i] = '\' then
      break;
  end;
  Result := copy(Filename,1,i);
end;
Gibt Dateinamen zurück (Ext := true --> Mit Extension)
Delphi-Quellcode:
function Dateiname(Filename:String; Ext:Boolean):String;
var
  i : integer;
  datei:string;
begin
  if Ext = true then
  begin
    for i := length(Filename) downto 0 do
    begin
      if Filename[i] = '\' then
        break;
      result := copy(Filename,i,length(Filename));
    end;
  end else
  if Ext = false then
  begin
    for i := length(Filename) downto 0 do
    begin
      if Filename[i] = '\' then
        break;
      datei := copy(Filename,i,length(Filename));
      Result := copy(datei,1,pos('.',datei)-1);
    end;
  end;
end;
oder mach doch mit dem Filename ne DownTo schleife bist nen Punkt findest und dann weißt du doch wo die extension anfängt

Luckie 5. Dez 2003 13:06

Re: OpenDialog FileName?
 
Delphi-Quellcode:
s := ChangeFileExt(Filename, '');

MathiasSimmack 5. Dez 2003 13:08

Re: OpenDialog FileName?
 
Zitat:

Zitat von General2003
[...]

Fängst du schon wieder an? :mrgreen: Ich dachte, nach der Kritik an deinen Code-Lib-Beiträgen zu diesen Themen wüsstest du, dass Delphi bereits passende Funktionen enthält ...

jackie 5. Dez 2003 13:08

Re: OpenDialog FileName?
 
Zitat:

Zitat von General2003
oder mach doch mit dem Filename ne DownTo schleife bist nen Punkt findest und dann weißt du doch wo die extension anfängt

Es sei denn, im Dateinamen befinden sich mehrere Punkte ... :wink:

MathiasSimmack 5. Dez 2003 13:11

Re: OpenDialog FileName?
 
Zitat:

Zitat von Matze
Mit pos kann ich das ja nicht lösen, da ich jede Endung manuell einstellen müsste, was ja unmöglich ist. :gruebel:

Wieso? Mit "pos" kannst du aber immerhin feststellen, ob überhaupt ein Punkt im angegebenen Dateinamen existiert. Wenn nicht, dann lieferst du den Dateinamen unverändert zurück, weil er dann keine Endung enthält. Wenn doch, dann gehst du vom Ende des Dateinamens (= String) solange eine Stelle zurück, bis du den Punkt findest - und dann kopierst du den Anfang des Namens bis zu dieser Stelle. Fertig.

Ich denke, anders wird´s auch Borlands "ChangeFileExt" nicht machen. Zumindest habe ich das so gemacht, als ich die Funktion für nonVCL-Projekte selbst geschrieben habe (wg. der SysUtils-Unit, die die Programme ja größer macht).

Nalincah 5. Dez 2003 13:13

Re: OpenDialog FileName?
 
Ich weiß, hab auch gesucht, aber es irgendwie nicht gefunden *g*

Wenn man die Sache von hinten aufzieht dann nicht
C:\Windows\dasdas.dasdas.txt
von hinten erkennt der das ".txt"

Matze 5. Dez 2003 13:13

Re: OpenDialog FileName?
 
Vielen Dank euch allen! :D

avadex 5. Dez 2003 13:13

Re: OpenDialog FileName?
 
ich hab es einfach so gemacht

Delphi-Quellcode:
label1.caption := ExtractFileName(OpenDialog1.FileName);
ist am einfachsten!

Matze 5. Dez 2003 13:15

Re: OpenDialog FileName?
 
Falls du mich ansprechen solltest ;)

Die Endungen müssten bei deiner Version aber noch vorhanden sein (.exe, .bmp, ...).

avadex 5. Dez 2003 13:36

Re: OpenDialog FileName?
 
Zitat:

Zitat von Matze
Falls du mich ansprechen solltest ;)

Die Endungen müssten bei deiner Version aber noch vorhanden sein (.exe, .bmp, ...).

ja, so wollte ich das ja auch! Endung sollte mit angezeigt werden!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 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