Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.028 c