Текущий архив: 2007.04.08;
Скачать: CL | DM;
Вниз
Как получить список дисков в системе Найти похожие ветки
← →
Самовар глазами чайника (2007-03-14 17:37) [0]Как получить список дисков в системе?
← →
Gydvin © (2007-03-14 17:48) [1]можно перебрать например так
for x := 65 to 90 do begin
if GetDriveType(Pchar(chr(x) + ":\")) <> DRIVE_NO_ROOT_DIR then begin
← →
Gydvin © (2007-03-14 17:48) [2]можно перебрать, например так
for x := 65 to 90 do begin
if GetDriveType(Pchar(chr(x) + ":\")) <> DRIVE_NO_ROOT_DIR then begin
← →
begin...end © (2007-03-14 17:49) [3]См. API-функции GetLogicalDrives, GetLogicalDriveStrings.
← →
Чайник глазами самовара (2007-03-14 18:18) [4]
> begin...end © (14.03.07 17:49) [3]
> См. API-функции GetLogicalDrives, GetLogicalDriveStrings
Про это я знал, а ты знаешь, что GetLogicalDriveStrings возвращает почему-то только один диск "A:\"
Может есть какя другие функции?
← →
Плохиш © (2007-03-14 18:34) [5]
> Чайник глазами самовара (14.03.07 18:18) [4]
> Про это я знал, а ты знаешь, что GetLogicalDriveStrings
> возвращает почему-то только один диск "A:\"
Враньё. Читай справку, там всё написано.
← →
RASkov (2007-03-14 18:44) [6]> [4] Чайник глазами самовара (14.03.07 18:18)
var
i, j: integer;
buf: array [0..499] of char;
DrvStr: array [0..9] of char;
LogDrives: set of 0..25;
begin
integer(LogDrives) := GetLogicalDrives;
for i := 0 to 25 do
if (i in LogDrives) then
ListBox1.Items.Add(chr(i + 65));
GetLogicalDriveStrings(1000, buf);
i := 0;
repeat
FillChar(DrvStr, SizeOf(DrvStr), #0);
j := 0;
repeat
DrvStr[j] := buf[i];
inc(j);
inc(i);
until
(buf[i] = #0) or (j > 9);
inc(i);
ListBox2.Items.Add(DrvStr);
until
((buf[i-1] = #0) and (buf[i] = #0)) or (i > 499);
end;
© Delphi World
← →
Плохиш © (2007-03-14 18:46) [7]
> buf: array [0..499] of char;
> GetLogicalDriveStrings(1000, buf);
Афигенный код...
← →
RASkov (2007-03-14 18:49) [8]> [7] Плохиш © (14.03.07 18:46)
>
> > buf: array [0..499] of char;
>
>
> > GetLogicalDriveStrings(1000, buf);
>
> Афигенный код...
:) Согласен...
Заменить на Length(buf)...
← →
Плохиш © (2007-03-14 18:52) [9]
> Заменить на Length(buf)...
если "..." следует читать как "-1", то да :-)
← →
RASkov (2007-03-14 19:11) [10]Можно, также, "выдрать" из filectrl.pas реализацию заполнения TDriveComboBox - BuildList;
← →
Anatoly Podgoretsky © (2007-03-14 19:12) [11]> Самовар глазами чайника (14.03.2007 17:37:00) [0]
Если список, то GetLogicalDriveStrings
← →
Чайник глазами самовара (2007-03-15 18:30) [12]Я то вообще вот таким методом делал и почему-то только один диск A:\ возвращает,
пока не понемаю почему?Var Buff: Array[0..1024] of char;
//...................................
GetLogicalDriveStrings(SizeOf(Buff),Buff);
Memo1.Lines.Add(StrPas(Buff));
//.......................................
← →
Плохиш © (2007-03-15 18:40) [13]
> Чайник глазами самовара (15.03.07 18:30) [12]
> Плохиш © (14.03.07 18:34) [5]
> Враньё. Читай справку, там всё написано.
Что за сутки так и не соизволили справку прочитать, ваше тупое величество?
← →
Чайник глазами самовара (2007-03-15 18:52) [14]Удалено модератором
Примечание: RO
← →
Глина глазами колхозника (2007-03-15 19:19) [15]
> Что за сутки так и не соизволили справку прочитать, ваше
> тупое величество?
- А почему эту надпись не удалили ведь она не менне оскарбительная?
- Что за лицемерие?
← →
Глина глазами колхозника (2007-03-15 19:27) [16]
> > Что за сутки так и не соизволили справку прочитать, ваше
> > тупое величество?
Может быть этот человек в разьездах и не может в течение суток обратится к справке, значит вот такие вы и есть ?
Страницы: 1 вся ветка
Текущий архив: 2007.04.08;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.038 c