Вниз
Скачать: 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.019 c
14-16664
K.o.Z
2004-01-12 03:20
2004.02.06
Странно


3-16096
HakoLamer
2004-01-10 22:27
2004.02.06
Query


1-16392
rexelf
2004-01-28 15:55
2004.02.06
Excel параметры страницы


14-16646
Незнающий
2004-01-14 14:09
2004.02.06
Чем проиграть (что надо установить) форматы .mov и .wmv?


4-16836
Sergious
2003-12-01 12:05
2004.02.06
Как перевести монитор в ждущий режим под ХР?




   Наверх