![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить список дисков в системе
Самовар глазами чайника © (2007-03-14 17:37:00)Как получить список дисков в системе?
Глина глазами колхозника (2007-03-15 19:27:00) [1]
> > Что за сутки так и не соизволили справку прочитать, ваше
> > тупое величество?
Может быть этот человек в разьездах и не может в течение суток обратится к справке, значит вот такие вы и есть ?
Глина глазами колхозника (2007-03-15 19:19:00) [2]
> Что за сутки так и не соизволили справку прочитать, ваше
> тупое величество?
- А почему эту надпись не удалили ведь она не менне оскарбительная?
- Что за лицемерие?
Чайник глазами самовара (2007-03-15 18:52:00) [3]Удалено модератором
Примечание: RO
Плохиш (2007-03-15 18:40:00) [4]
> Чайник глазами самовара ( 15.03.07 18:30) [12]
> Плохиш © ( 14.03.07 18:34) [5]
> Враньё. Читай справку, там всё написано.
Что за сутки так и не соизволили справку прочитать, ваше тупое величество?
Чайник глазами самовара (2007-03-15 18:30:00) [5]Я то вообще вот таким методом делал и почему-то только один диск A:\ возвращает,
пока не понемаю почему?
Var Buff: Array[0..1024] of char;
//...................................
GetLogicalDriveStrings(SizeOf(Buff),Buff);
Memo1.Lines.Add(StrPas(Buff));
//.......................................
Anatoly Podgoretsky (2007-03-14 19:12:00) [6]> Самовар глазами чайника (14.03.2007 17:37:00) [0]
Если список, то GetLogicalDriveStrings
RASkov (2007-03-14 19:11:00) [7]Можно, также, "выдрать" из filectrl.pas реализацию заполнения TDriveComboBox - BuildList;
Плохиш (2007-03-14 18:52:00) [8]
> Заменить на Length(buf)...
если "..." следует читать как "-1", то да :-)
RASkov (2007-03-14 18:49:00) [9]> [7] Плохиш © (14.03.07 18:46)
>
> > buf: array [0..499] of char;
>
>
> > GetLogicalDriveStrings(1000, buf);
>
> Афигенный код...
:) Согласен...
Заменить на Length(buf)...
Плохиш (2007-03-14 18:46:00) [10]
> buf: array [ 0..499] of char;
> GetLogicalDriveStrings( 1000, buf);
Афигенный код...
RASkov (2007-03-14 18:44:00) [11]> [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:34:00) [12]
> Чайник глазами самовара (14.03.07 18:18) [4]
> Про это я знал, а ты знаешь, что GetLogicalDriveStrings
> возвращает почему-то только один диск "A:\"
Враньё. Читай справку, там всё написано.
Чайник глазами самовара (2007-03-14 18:18:00) [13]
> begin...end © (14.03.07 17:49) [3]
> См. API-функции GetLogicalDrives, GetLogicalDriveStrings
Про это я знал, а ты знаешь, что GetLogicalDriveStrings возвращает почему-то только один диск "A:\"
Может есть какя другие функции?
begin...end (2007-03-14 17:49:00) [14]См. API-функции GetLogicalDrives, GetLogicalDriveStrings.
Gydvin (2007-03-14 17:48:00) [15]можно перебрать например так
for x := 65 to 90 do begin
if GetDriveType(Pchar(chr(x) + ':\')) <> DRIVE_NO_ROOT_DIR then begin
Gydvin (2007-03-14 17:48:00) [16]можно перебрать, например так
for x := 65 to 90 do begin
if GetDriveType(Pchar(chr(x) + ':\')) <> DRIVE_NO_ROOT_DIR then begin