Es kommt zwar seltener vor, dann man wirklich mal
viel schnell sucht,
aber wenn, dann sind FIND_FIRST_EX_LARGE_FETCH, FindExSearchLimitToDirectories und vielleicht noch FIND_FIRST_EX_ON_DISK_ENTRIES_ONLY ganz nett.
Wobei direkt MFT unschlagbar ist, auch wenn es selten genutzt werden kann.
Schade, überall werden immernoch die Transacted-Varianten present verlinkt, aber wenn man dann rein sieht, dann wird man trauchig, weil es praktisch schon tot ist.
Ja, das Result muß man leider immer initialisieren, blöd nur, wenn der Compiler bei gemangten Typen dort nichts sagt
Keine Sorge, ich nehme auch lieber Arrays (wegen der Kompatibilität als TArray<>).
eine IStringList ist bissl unpraktisch, aber eine automatische Speicherverwaltung ist unschlagbar ... nie vergessen die "Liste" freizugeben oder mal ausversehn doppelt versuchen freizugeben.
Mit Managed Records und den TArray-Helpern (die in den Generics und paar Eigene, weil Delphi viel vergessen hat) und seit 'ner kurzen Weile endlich auch Insert, Delete und + für Arrays gleichen das aus.
Zitat:
Delphi-Quellcode:
procedure AddStrArr(var AArr: TStrArr; const AString: WideString);
var
i: Integer;
begin
i := Length(AArr);
SetLength(AArr, Succ(i));
AArr[i] := AString;
end;
AArr := AArr + [AString];
(vielleicht nicht der optimalste Code, aber egal ... noch nicht nachgesehn, ob Delphi wirklich das macht, was man schleibt, oder ob es doch optimaler arbeitet und "nur" anhängt/inserted)