Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateinamen rausfiltern (https://www.delphipraxis.net/115734-dateinamen-rausfiltern.html)

theroad 17. Jun 2008 01:25


Dateinamen rausfiltern
 
Hallo,

ich habe ein listbox in der dateien mit ihrem Kompletten Link eingetragen sind also z.b. E:\Musik\lied.mp3 so jezt will ich aber das nur lied.mp3 in die Listbox eingetragen wird.

Hier der Code mit dem der Dateiname ermittelt wird und in die Listbox eingetragen wird:
Delphi-Quellcode:
procedure TForm2.WMDROPFILES(var Msg: TMessage);
var
  i, Counts, Size: Integer;
  PCharFileName: PChar;
begin
  inherited;

  PCharFileName := nil;
  Counts := DragQueryFile(Msg.WParam, $FFFFFFFF, PCharFileName, 255);

  for i := 0 to Counts - 1 do
  begin
    Size := DragQueryFile(Msg.WParam, i, nil, 0) + 1;
    PCharFileName := StrAlloc(Size);
    DragQueryFile(Msg.WParam, i, PCharFileName, Size);
    sListBox2.Items.Add(String(PCharFileName));
    StrDispose(PCharFileName);
  end;

  DragFinish(Msg.WParam);
end;
Vielen Dank im voraus

MFG

calculon 17. Jun 2008 02:47

Re: Dateinamen rausfiltern
 
Delphi-Quellcode:
[..]
    sListBox2.Items.Add(ExtractFileName(String(PCharFileName)));
[..]

theroad 17. Jun 2008 13:19

Re: Dateinamen rausfiltern
 
Danke!

MFG

MSSSSM 17. Jun 2008 13:21

Re: Dateinamen rausfiltern
 
pass aber auf das du dann nicht das, was in der Listbox steht abspielen willst.
Empfehlung: einen Record

mfg

marabu 17. Jun 2008 13:56

Re: Dateinamen rausfiltern
 
Hallo,

die vollständigen absoluten Dateipfadnamen würde ich in einer eigenen StringList verwalten und die Listbox in den virtuellen Modus versetzen. Dann kann beim Ereignis OnData() der gewünschte Inhalt bereit gestellt werden.

Grüße vom marabu

theroad 17. Jun 2008 18:04

Re: Dateinamen rausfiltern
 
Danke marabu genau das habe ich schon gemacht. :balloon:

Aber jezt habe ich noch eine Frage wie bekomme ich die Dateiendung heraus also z.b. .mp3?

Weil ich noch eine Funktion ingebaut habe so das man die Lieder in die ListBox zihen kan nur muss ja überprüft werden
ob es wirklich eine Datei ist die ich auch abspielen kann.

Ich habe mir die If abfrage so gedacht:
Delphi-Quellcode:
     if dateiendung = '.mp3' then
     sListBox1.Items.Add(String(PCharFileName))
     else
     showmessage('Dies ist keine MP3 Datei!');
Vielen Dank im voraus

MFG

marabu 17. Jun 2008 18:21

Re: Dateinamen rausfiltern
 
Passend zu ExtractFileName() gibt es die Funktion ExtractFileExt().

Übrigens: Die Online-Hilfe zeigt dir themenbezogenen Verweise unter dem Link SeeAlso.


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