Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: 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 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
14-16667
новичок_из_сыктывкара
2004-01-17 23:11
2004.02.06
ОТветьте пожайлуста, можно ли уже готовый .exe (если я точно зна)


14-16616
Евгыш
2004-01-15 10:18
2004.02.06
Обработка исключений


1-16396
GooD-NTS
2004-01-22 20:41
2004.02.06
Большая проблема.


1-16312
del_programmer
2004-01-25 16:37
2004.02.06
Help


6-16568
Sil
2003-12-01 17:59
2004.02.06
Моделирование сетей