AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDirectory.GetLogicalDrives

Ein Thema von Willie1 · begonnen am 11. Nov 2020 · letzter Beitrag vom 19. Nov 2020
 
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#20

AW: TDirectory.GetLogicalDrives

  Alt 17. Nov 2020, 16:09
Wenn P^ #0 wäre, wäre die Schleife bereits verlassen worden.

Es muss +1 addiert werden, um auf den Beginn des folgenden (Teil)Strings zu kommen. Am Ende des Gesamtstrings ist sowieso ein Doppelnullbyte. Grundsätzlich ist der Code schon richtig. Addiert man die +1 nicht, bricht die Schleife nach dem ersten Laufwerk ab (weil der Pointer auf dem Nullbyte nach dem ersten Laufwerk steht).

Ich hab sogar eine ähnliche Variante aus einem anderen Projekt probiert:
Delphi-Quellcode:
procedure SplitMultiSZToStringList(AStr: PChar; const sl: TStringList);
begin
    if Assigned(AStr) then begin
        sl.Clear;
        while AStr[0] <> #0 do begin
            if AStr <> 'then
                sl.Add(AStr);
            Inc(AStr, StrLen(AStr) + 1)
        end;
    end;
end;
Aber auch das ändert nichts.

Interessant auch: Nutzt man die ANSI-Funktion MSDN-Library durchsuchenGetLogicalDriveStringsA und passt die Variablentypen entsprechend an, knallt es auch nicht mehr. Verstehe das, wer will.

Grüße
Dalai
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 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