Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Findfirst/next Problem (https://www.delphipraxis.net/15614-findfirst-next-problem.html)

braingrenade 1. Feb 2004 15:20


Findfirst/next Problem
 
Moin Leute !

Hab n'kleines Problem mit Findnext/first :

In einem Ordner hab ich fünf Bitmap Dateien:

1.bmp
2.bmp
3.bmp
4.bmp
5.bmp

Die will ich nun der Reihe nach auslesen also zuerst 1.bmp dann 2.bmp usw...

Dazu hab ich folgenden Code :

Delphi-Quellcode:
var SearchRec: TSearchRec;
begin

FindFirst(bmpfolder+'*.bmp', faAnyFile, SearchRec);
repeat
  setlength(textures,high(textures)+2);
  textures[high(textures)] := tglbmp.Create(bmpfolder+ searchrec.Name);
  ...
until FindNext(searchrec) <> 0;
findclose(searchrec);
Aber unerklärlicherweise werden die bitmaps in der Reihenfolge 1,3,4,5,2 eingelesen !

Kann mir da jemand helfen ?

hboy 1. Feb 2004 15:22

Re: Findfirst/next Problem
 
Das ist nunmal so im Dateisystem sind die Dateien nicht fertig sortiert. Das muss dein Programm erledigen.

braingrenade 1. Feb 2004 15:25

Re: Findfirst/next Problem
 
Achso. Stressig !

hboy 1. Feb 2004 15:28

Re: Findfirst/next Problem
 
am einfachsten geht es wenn du die Dateinamen in eine Listbox reinlädst und sorted:= true setzt. Dann kannst du die Namen wieder rauslesen, diesmal sortiert

hboy 1. Feb 2004 15:32

Re: Findfirst/next Problem
 
Delphi-Quellcode:
var
  SearchRec: TSearchRec;
  Sortlist: TListbox;
  i: integer;
begin
  SortList := TListbox.create(self);
  FindFirst(bmpfolder+'*.bmp', faAnyFile, SearchRec);
  repeat
    Sortlist.items.add(searchrec.Name);
  until FindNext(searchrec) <> 0;
  findclose(searchrec);
  Sortlist.Sorted := true;
  for i := 0 to Sortlist.Items.Count-1 do
  begin
    setlength(textures,length(textures)+1);
    textures[high(textures)] := tglbmp.Create(bmpfolder+ SortList.Items.Strings[i]);
  end;
  Sortlist.free;
end;
so in etwa...

Edit: end gehört auch dazu.
Edit: das setlength aus der repeatschleife raus

braingrenade 1. Feb 2004 15:41

Re: Findfirst/next Problem
 
Optimal, funktioniert wunderbar !


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