habe gerade etwas gekämpft, eine Directory-Struktur (mit wilden (polnischen?) UTF-8 Sonderzeichen in den Dateinamen) in eine Listbox einzulesen.
Dabei sollen die Verzeichnisse und Dateien in einer bestimmten Reihenfolge erscheinen (so dass, wenn sie mit einer Zahl anfangen, diese "normal" sortiert wird, (d.h. 1,2,3,4,..,10,11,... usw.)
Ausserdem möchte ich nur jeweils eine Zeile nach der anderen, um diese nacheinander zu verarbeiten (der Ordnerbaum kann ja sehr groß sein, was dann lange dauert) und so kann ich Application.ProcessMessages zwischendurch aufrufen, etc...
Es funktioniert jetzt

Hab' mir gedacht, ich poste es, vielleicht kann es ja mal jemand brauchen...
(zip ging nicht, weil die Sonderzeichen sich nicht packen liessen, musste daher 7zip nehmen)
Falls jemand eine Idee hat, wie man z.B. die Performance steiger kann bei gleichbleibender Funktionalität würde mich das natürlich auch sehr interessieren (oder vielleicht kann man es eleganter lösen....)
Hier das Interface:
Code: Alles auswählen
unit dirlister;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, lazutf8, LazFileUtils, windows;
procedure DirLister_Init(path:string);
function DirLister_NextItem:string; //Call until it returns an empty string
implementation