Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Список СД-РОМов?


Автор: _8989 19.11.2003, 15:12
Как получить список CD-ROM'ов без двоеточия и косой черты (C:\). Нужно получить только букву.

Автор: <Spawn> 19.11.2003, 16:35
Например так:

Код
procedure TForm1.Button1Click(Sender: TObject);
var
 Buffer:PAnsiChar;
 BufLen, i, CurrentInc: integer;
begin
 BufLen:= GetLogicalDriveStrings(0, Buffer);
 try
   GetMem(Buffer, BufLen);
   GetLogicalDriveStrings(BufLen, Buffer);
   CurrentInc:= 0;
   while BufLen > CurrentInc do
   begin
     if GetDriveType(Buffer) = DRIVE_CDROM then
       ListBox1.Items.Add(Copy(Buffer,1,1));
     Inc(Buffer, 4);
     Inc(CurrentInc, 4);
   end;
 finally
   Dec(Buffer, CurrentInc);
   FreeMem(Buffer);
 end;
end;

Автор: <Spawn> 19.11.2003, 16:38
А можно так:

Код
procedure TForm1.Button1Click(Sender: TObject);
var
 Buffer:PAnsiChar;
 BufLen, i, CurrentInc: integer;
begin
 BufLen:= GetLogicalDriveStrings(0, Buffer);
 try
   GetMem(Buffer, BufLen);
   GetLogicalDriveStrings(BufLen, Buffer);
   CurrentInc:= 0;
   while BufLen > CurrentInc do
   begin
     if GetDriveType(PAnsiChar(DWORD(Buffer) + CurrentInc)) = DRIVE_CDROM then
       ListBox1.Items.Add(Copy(PAnsiChar(DWORD(Buffer) + CurrentInc),1,1));
     Inc(CurrentInc, 4);
   end;
 finally
   FreeMem(Buffer);
 end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)