Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-16368
SniZ
2004-01-24 00:27
2004.02.06
Как создать маленькое приложение с формой?


14-16627
iNew
2004-01-14 11:53
2004.02.06
Нормы расхода спирта


1-16501
Sergioly
2004-01-27 14:30
2004.02.06
Как запустить дос-прогу без вывода ее окна в Delphi


7-16775
Kyzja
2003-11-17 14:35
2004.02.06
Как запихнуть форму в dll ?


3-16190
Yulik
2004-01-13 16:43
2004.02.06
Проблемы с кодировкой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский