mir ging es eher um das StrEnd statt StrLen.
himitsu hatte ja eine Variante mit StrEnd gepostet - es ändert nichts.
Da die
Unit ja ein paar zusätzliche Funktionen bereitstellt, kann man kann die Funktion DriveDisplayNames auch so schreiben:
Delphi-Quellcode:
procedure DriveDisplayNames(const List: TStrings);
{Gets list of display names for all the system's drives and stores in a given
string list.}
var i: byte;
begin
for i:= 0 to 25 do begin
if IsValidDriveNum(i) then
List.Add(DriveDisplayName(DriveRootPath(i)));
end;
end;
Das funktioniert bei mir zuverlässig und ohne
AV nach dem x-ten Aufruf.
@Willie1:
Such dir einen Weg aus, es sind ja bereits genügend Varianten gepostet worden.
Grüße
Dalai