Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FileListBox ohne endung (https://www.delphipraxis.net/96291-filelistbox-ohne-endung.html)

SaFu 21. Jul 2007 20:19


FileListBox ohne endung
 
hi habe mal wieder nach langer zeit eine Frage

Warum bekomme ich in meiner FileListBox die endung nicht weg

Delphi-Quellcode:
procedure TForm8.FileListBox1Change(Sender: TObject);
var name :String;
begin
 name := Copy(ExtractFileName(FileListBox1.FileName), 1, Length(ExtractFileName(FileListBox1.FileName))-Length(ExtractFileExt(FileListBox1.FileName));

  if (name = '.txt') then
      begin
       Gridlade;
       memolade;
       bilderlade;
     end;

 end;
Kann mir vielleich jemand helfen :stupid:

dajuhsa 21. Jul 2007 20:40

Re: FileListBox ohne endung
 
glaub zwar nicht, aber vielleicht geht ja:
Delphi-Quellcode:
name := Copy(ExtractFileName(FileListBox1.FileName), 1, Pos(FileListBox1.FileName, ExtractFileExt(FileListBox1.FileName));

SirThornberry 21. Jul 2007 20:41

Re: FileListBox ohne endung
 
was machst du da? :shock:
Du nimmst die FileExtension weg und schaust dann ob der übrige Teil .txt ist?

Nimm um die Endung weg zu bekommen "ChangeFileExt". Verwende am besten einen Variablennamen der ungleich dem Namen einer bereits definierten Variablen oder eines property ist (also nicht name)

Zu guter Letzt: Verwendest du TFileListBox? Die vom Reiter Win3.1? Und erhältst eine Warnung die du einfach ignorierst? Falls bei dir keine Warnung kommt: Der Reiter heißt nicht ohne Grund Win3.1. Die Komponenten darauf sind Relikte aus dieser Zeit und sind seit einiger Zeit bereits als Depricated declariert. Wenn du diese also verwendest kann es dir passieren das es nicht unter zukünftigen Windowsversionen funktioniert (eventuell schon unter Vista nicht)

SaFu 21. Jul 2007 20:59

Re: FileListBox ohne endung
 
So gehts auch nicht

Delphi-Quellcode:
name := Copy(ExtractFileName(FileListBox1.FileName), 1, Pos(FileListBox1.FileName, ExtractFileExt(FileListBox1.FileName));
Zitat:

Zitat von SirThornberry
was machst du da? :shock:
Du nimmst die FileExtension weg und schaust dann ob der übrige Teil .txt ist?

das ist das nächste problem was ich danach löse

gibt es eine neuere komponente als TFilelistBox????

SirThornberry 21. Jul 2007 21:04

Re: FileListBox ohne endung
 
naja, unter sampels gibt es die ShellListview etc.
Um das Problem mit deiner Endung hinn zu bekommen ist die einfachste Variante wie bereits von mir gepostet:
Delphi-Quellcode:
OhneEndung := ChangeFileExt(MitEndung, '');

SaFu 21. Jul 2007 21:12

Re: FileListBox ohne endung
 
Wende ich das hier an

Delphi-Quellcode:
 Liste1:= (ExtractFilePath(ParamStr(0)) +('\Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)))));
  FileListBox1.Directory := Liste1;
wenn ich die dateien in die liste lade??

so vielleicht

Delphi-Quellcode:
 Liste1:= ChangeFileExt(ExtractFilePath(ParamStr(0)) +('\Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)))));

SaFu 21. Jul 2007 21:39

Re: FileListBox ohne endung
 
naja bissel doof ausgedrückt stell ich gerade fest

Also nochmal

ich setze die FileListBox so auf einen bestimmten ordner so
Delphi-Quellcode:
Liste1:= (ExtractFilePath(ParamStr(0)) +('\Vertretungspläne\'+(IntToStr(YearOf(Date)))+'_KW_'+(IntToStr(WeekOfTheYear(Date)))));
  FileListBox1.Directory := Liste1;
jetzt werden alle dateien im Ordner mit der endung .txt übergeben wo setze ich jetzt das genau hin um die endungen im vorraus auszublenden????

hoika 22. Jul 2007 07:47

Re: FileListBox ohne endung
 
Hallo,

ich glaube nicht, dass das geht.
Du könntest eine normale ListBox, oder besser (schöner) ListView benutzen
und füllst die selber über:

FindFirst
FindNext
FindClose


Heiko

Blackheart 22. Jul 2007 08:36

Re: FileListBox ohne endung
 
Also ehrlich deine Fragen sind kaum zu verstehen, erkläre doch mal mit einem Satz mehr worauf Du hinauswillst - Ich versteh hier nur Bahnhof, meinst Du vieleicht das hier...
Delphi-Quellcode:
procedure TForm1.FileListBox1Change(Sender: TObject);
 var
  i:Integer;
begin
  for i := 0 to FileListbox1.Items.Count-1 do
  FileListBox1.Items.Strings[i]:=ChangeFileExt(FileListBox1.Items.Strings[i],'');
end;

marabu 22. Jul 2007 15:25

Re: FileListBox ohne endung
 
Hallo Sascha,

versuche gar nicht erst die Erweiterung der Dateinamen zu entfernen. Die FileListBox zeigt die Dateien selbst an und es gibt keine Einstellung um die Anzeige der Erweiterung zu unterbinden. Wenn die FileListBox nicht gefällt, dann verzichte besser ganz darauf. Nimm eine ListBox und fülle sie selbst:

Delphi-Quellcode:
type
  TFindFilesOption = (ffoExcludePath, ffoExcludeExt);
  TFindFilesOptions = set of TFindFilesOption;

function FindFiles (
  const fileExpr: String;        // vollständiger Dateiname mit wildcards
  files: TStrings;               // Ergebnisliste
  options: TFindFilesOptions = [] // Stdandardanzeige mit Pfad und Erweiterung
): Boolean;                      // Erfolgreich bei True
var
  sr: TSearchRec;
  path: string;
  extWanted: Boolean;
begin
  Result := True;
  files.Clear;
  files.BeginUpdate;
  if ffoExcludePath in options
    then path := ''
    else path := ExtractFilePath(fileExpr);
  extWanted := not (ffoExcludeExt in options);
  if FindFirst(fileExpr, faArchive, sr) = 0 then
  begin
    repeat
      if extWanted
        then files.Add(path + sr.Name)
        else files.Add(ChangeFileExt(path + sr.Name, ''));
    until FindNext(sr) <> 0;
    FindClose(sr);
  end else Result := False;
  files.EndUpdate;
end;
Aufrufen kannst du das so:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  FindFiles('C:\Media\*.mp3', ListBox.Items, [ffoExcludePath, ffoExcludeExt]);
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 Uhr.
Seite 1 von 3  1 23      

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