Вниз
Скачать: 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.02 c
14-16623
Daemys
2004-01-14 12:38
2004.02.06
Гуманизм и милосердие


3-16196
jack128
2004-01-13 13:39
2004.02.06
Пример работы с курсором


9-16014
lokid7
2003-07-21 12:07
2004.02.06
Помогите мне в D3D


3-16036
rika
2004-01-12 15:58
2004.02.06
Как вставить в текстовый файл инфу из БД?


8-16537
Urvin
2003-10-05 02:25
2004.02.06
Высокий/низкий звук из одного




   Наверх