Вниз
Скачать: CL | DM;

GetLogicalDriveStrings   Найти похожие ветки 

← →
Alien ©   (2004-01-27 17:14) [0]

MypChar:=StrAlloc(max_path);
GetLogicalDriveStrings(max_path,MypChar);
MyStr:=StrPas(MypChar); - не работает (возвращает только первый путь - "A:\").

Перерыл весь хелп - ни функции ни способа не нашел.
Насколько я понял, в хелпе написано, что надо копировать по байтам.
Как?


← →
Некто   (2004-01-27 17:19) [1]

Там же конкретный пример дан: c:\<null>d:\<null><null>


← →
pasha_golub ©   (2004-01-27 17:20) [2]

Товарищ, а в хелпе написано, что они разделены чем? Правильно, вот этим #0, а в конце стоит что? Правильно, два таких вот #0

Хелп надо не рыть, а читать :-)


← →
Alien ©   (2004-01-27 17:21) [3]

Ну... и что? Это я видел, в String преобразовать-то как?


← →
pasha_golub ©   (2004-01-27 17:22) [4]


function GetDrives: string; //получить все доступные диски для системы
var
c: char;
Mask, Drives: integer;
begin
Drives := GetLogicalDrives;
Mask := 1;
Result := "";
for c := "A" to "Z" do
begin
if Mask and Drives = Mask then Result := Result + c;
Mask := Mask shl 1; // или Mask := Mask * 2;
end;
end;


← →
pasha_golub ©   (2004-01-27 17:23) [5]


Ну... и что? Это я видел, в String преобразовать-то как?


Каком. При таких вопросах нужно книжки читать.


← →
Alien ©   (2004-01-27 17:24) [6]

Спасибо и на этом...


← →
Некто   (2004-01-27 18:00) [7]

procedure GetDrives(a_List: TStringList);
var
pZDrives: PChar;
pP: PChar;
begin
a_List.Clear;
pZDrives := StrAlloc(MAX_PATH);
try
GetLogicalDriveStrings(MAX_PATH, pZDrives);
pP := pZDrives;
while (pP[1] <> #0) do
begin
a_List.Add(StrPas(pP));
integer(pP) := integer(pP) + Length(StrPas(pP)) + 1;
end;
finally
StrDispose(pZDrives);
end;
end;


← →
Некто   (2004-01-27 18:01) [8]

хм... лучше объявить:
procedure GetDrives(a_List: TStrings);


← →
pasha_golub ©   (2004-01-27 18:04) [9]

Некто (27.01.04 18:01) [8]

А если я в процедуру передам

procedure ...;
var L: TStrings;
begin
GetDrives(L); //получаем по мозгам
...
end;

..


← →
MBo ©   (2004-01-27 18:15) [10]

>pasha_golub
Но ведь ты же так делать не будешь, а как честный человек, передашь наследника TStrings, например, Memo.Lines



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.017 c
14-16716
Ru
2004-01-16 18:54
2004.02.06
Тут кто-то, когда-то, что-то про историю говорил.


1-16296
XenonXX
2004-01-20 03:55
2004.02.06
Delphi глючит?!?


3-16167
bushmen
2004-01-14 12:59
2004.02.06
Изменение цвета записи в DbGrid


11-16203
Sergey
2003-05-19 09:24
2004.02.06
exptlntf.dcu


4-16818
ravennsk
2003-11-27 14:54
2004.02.06
блокировка процессов




   Наверх