![]() |
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:
Aber unerklärlicherweise werden die bitmaps in der Reihenfolge 1,3,4,5,2 eingelesen !
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); Kann mir da jemand helfen ? |
Re: Findfirst/next Problem
Das ist nunmal so im Dateisystem sind die Dateien nicht fertig sortiert. Das muss dein Programm erledigen.
|
Re: Findfirst/next Problem
Achso. Stressig !
|
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
|
Re: Findfirst/next Problem
Delphi-Quellcode:
so in etwa...
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; Edit: end gehört auch dazu. Edit: das setlength aus der repeatschleife raus |
Re: Findfirst/next Problem
Optimal, funktioniert wunderbar !
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 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