AGB  ·  Datenschutz  ·  Impressum  







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

Alle MountPoints auslesen

Ein Thema von ThoPos · begonnen am 24. Mär 2010 · letzter Beitrag vom 6. Okt 2015
Antwort Antwort
ThoPos

Registriert seit: 30. Jun 2004
Ort: Köln
71 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: Re: Alle MountPoints auslesen

  Alt 12. Mär 2014, 12:23
Hallo zusammen,

ich muß diesen Thread mal wieder an's Licht holen.


Diese Procedure läuft unter Delphi 2007 fehlerfrei

Delphi-Quellcode:
procedure GetVolumes(Vol:TStrings);
var Res : integer;
    Buf : array [0..MAX_PATH] of Char;
begin
 Vol.Clear;
 Res := FindFirstVolume(Buf,SizeOf(Buf));
 repeat
  Vol.Add(StrPas(Buf));
 until (not FindNextVolume(Res,Buf,SizeOf(Buf)));
 FindVolumeClose(Res);
end;
Seit einigen Wochen nutze ich jetzt Delphi XE4. Und hier kommt es beim Befehl FindNextVolume zu einem Kernel32 Fehler.
Hat jemand 'ne Idee und noch besser: 'ne Lösung?


Gruß aus Köln
Thomas
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#2

AW: Alle MountPoints auslesen

  Alt 12. Mär 2014, 12:29
SizeOf(Buf) ?

Überleg mal, was man da als zweiten/dritten Parameter übergeben soll.



Length(Buf)

Tja, hätte man mal gleich die Dokumentation richtig gelesen.

Wobei die Fehlerbehandlung nun auch nicht sonderlich ideal ist.


[add]
Delphi-Quellcode:
procedure GetVolumes(Vol:TStrings);
var Res : THandle;
    Buf : array [0..MAX_PATH] of Char;
begin
  Vol.Clear;
  Res := FindFirstVolume(Buf, Length(Buf));
  if Res = INVALID_HANDLE_VALUE then
    RaiseLastOSError;
  repeat
    Vol.Add(StrPas(Buf));
  until not FindNextVolume(Res, Buf, Length(Buf));
  FindVolumeClose(Res);
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (12. Mär 2014 um 12:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Alle MountPoints auslesen

  Alt 12. Mär 2014, 14:38
Also strengnenommen, himitsu, ist das ja auch nicht ganz korrekt =P
Wenn, dann~
Length() * SizeOf()..
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#4

AW: Alle MountPoints auslesen

  Alt 12. Mär 2014, 16:34
Neeee.

Length(x) * SizeOf(Char) oder SizeOf(StaticCharArray) wäre nur richtig, wenn man dort die Länge in Bytes angeben soll.

Length(x) ist dafür, wenn man die Länge in Zeichen anzugeben hat.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#5

AW: Alle MountPoints auslesen

  Alt 6. Okt 2015, 07:10
Kann mir jemand sagen, welche Unit ich der Uses hinzufügen muss, damit XE4 FindFistVolume, FindNextVolume und FindVolumeClose findet? Hab schon mit Grep das ganze Emba-Verzeichnis durchsucht, aber keinen Treffer erhalten.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Alle MountPoints auslesen

  Alt 6. Okt 2015, 07:39
Mein Delphi7 hier kannte es auch nicht (was nichts heißen muss).
Notfalls halt einfach grad die Funktion von MSDN abtippen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#7

AW: Alle MountPoints auslesen

  Alt 6. Okt 2015, 07:47
Notfalls halt einfach grad die Funktion von MSDN abtippen.
Wie, abtippen?


Die sich oben beteiligten DP-Mitglieder verwenden die Funktion ja auch. Also bin ich jetzt mal von einer Unit in den Uses ausgegangen. Oder sind das ggf. Funktionen einer DLL z.b. kernel? Leider postet ja niemand den Interface-Abschnitt.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:05 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