Показать сообщение отдельно
  #7  
Старый 11.01.2011, 12:22
ShenZN ShenZN вне форума
Прохожий
 
Регистрация: 10.01.2011
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
Код:
var
  h: THandle;
  buf: array [0..$ffff] of Char;
  dummy: Cardinal;
begin
  h:=CreateFile(
    PChar('\\.\F:'),
    GENERIC_READ or GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    0,
    0
  );
  if h=0 then raise Exception.Create(SysErrorMessage(GetLastError));
  SetFilePointer(h, $0000, nil, FILE_BEGIN);
  if ReadFile(h, buf, SizeOf(buf), dummy, nil) then
    Memo1.Text:=Copy(buf, 1, dummy)
  else
    ShowMessage(SysErrorMessage(GetLastError));
  CloseHandle(h);
end;

Спасибо за оперативный ответ NumLock.
Прояснилось по поводу типов данных.
Но при выполнении данного кода у меня выводится лишь один символ л. И если я изменяю имя диска на \\.\C: то указывается что неправильный дескриптор, хотя такой логический диск существует. Правильно ли я указываю адрес диска и почему всего один символ выводится, хотя по идеи должно быть $FFFF символов.
Ответить с цитированием