Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

Delphi: Чтения бит с CD диска   Найти похожие ветки 

 
Artin   (2004-10-08 20:49) [0]

Здравствуйте.
Мне надо прочитать с диска(CD) первый бит затем бит из серединки и последний бит.
Причём мне надо замерить время между считыванием.
Фактически замерить время реакции головки CD-ROMа. По этому (время реакции головки) я нечего не нашел. Конечно, можно это сделать примерно так
var
 File : file_f;
begin
assign(File,path_file);
reset(File,1);
// в цикл if EOF(File)
BlockRead(File,item,sizeof(item));
//Замеряем Timerом и высчитываем
//Конец цикла
end.
Но мне не нравиться, что надо явно указывать имя фиала.
Как читать биты прямо с CD?


 
Cobalt ©   (2004-10-08 21:45) [1]

попробуй открыть файл
\Device\CdRom1


 
tesseract   (2004-10-11 09:41) [2]

re: Cobalt
попробуй открыть файл
\Device\CdRom1

Да и посмотри описание CreateFile, REadFile, SetFilePointer и тд...

А можешь и DEVICE_IO_CONTROL


 
Artin   (2004-10-11 21:22) [3]

Cobalt,tesseract
\Device\CdRom1
Пробовал. Пишет не могу открыть фаил.


 
Fay ©   (2004-10-11 21:44) [4]

Попробуй что-нибудь типа этого.
const
 BUF_SZ = 4096;
var
 hd, hf, nr, nw : DWORD;
 b : packed array[0..BUF_SZ - 1] of Byte;
label
 Label_Next;
begin
 hd := CreateFile("\\.\A:", GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
 if hd = INVALID_HANDLE_VALUE then RaiseLastOSError;
 hf := INVALID_HANDLE_VALUE;
 try
   hf := CreateFile("c:\Floppy.txt", GENERIC_WRITE, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0);
   if hf = INVALID_HANDLE_VALUE then RaiseLastOSError;
   goto Label_Next;
   repeat
     WriteFile(hf, b, nr, nw, nil);
     Label_Next :
     ReadFile(hd, b, BUF_SZ, nr, nil);
   until nr = 0;
 finally
   CloseHandle(hd);
   if hf <> INVALID_HANDLE_VALUE then CloseHandle(hf);
 end;


 
tesseract   (2004-10-12 12:27) [5]


hd := CreateFile("\\.\A:", GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);


Только для NT+ для 9x надо открывать vxd

hd := CreateFile("\\.\vwin32", GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);


 
Fay ©   (2004-10-12 12:51) [6]

2 tesseract   (12.10.04 12:27) [5]
Это откуда? Не могу найти. В PSDK есть
Windows 95/98/Me: This technique does not work for opening a logical drive. Specifying a string in this form causes CreateFile to return an error.
На MSDN не нашёл и этого. Странно.


 
SammIk ©   (2004-10-12 18:22) [7]

Во-первых, прочитать биты с диска нельзя!!(да ивообще их нельзя прочитать нигде).
Во-вторых нужно сходить на васм да посмотреть статьи Касперского.
И подождать его книги. Можно сходить на его саит и скачать пару глав из нее.


 
Artin   (2004-10-12 21:52) [8]

Fay ©
Большое спасибо это то что нужно!

tesseract
Моя товю не понимает :(
Обьесни тольком как надо писать для 98. Читал спарвку в дельфи сходу нечего не понятно.


 
tesseract   (2004-10-13 11:05) [9]

Пояснение :
 в NT требуется открыть ус-во, его и открываем по полному имени- "\\.\A:", так например и COM , больше девятого открыть "\\.\COM125"
 в 9x надо обращаться к драйверу - "\\.\vwin32" тк обратились к драйверу, то на ReadFile можно забить.
  DEviceIOControl - пишем как в Asm регистры и команды и посылаем драйверу (купи себе "программирование в Delphi 7" от BHV - там есть пример чтения с дискеты)

to Sammik ^
 
Во-первых, прочитать биты с диска нельзя!!(да ивообще их нельзя прочитать нигде).

Точно биты нельзя! а байты можно!  статьи Касперского - такжи хороши как и его антивирус - никакой пользы.

Если прочитать/записать нельзя, как же винда к диску обращается???????


 
Jel ©   (2004-10-13 15:05) [10]


> статьи Касперского - такжи хороши как и его антивирус -
> никакой пользы.

Неудивительно. Статьи пишет Крис Касперски, а антивирус Евгений Касперский :)


 
Artin   (2004-10-14 21:29) [11]

tesseract
Купить книгу конечно надо, я уже прочитал одну книгу но она из раздела для чайников. А на нормальную книжку денег пока жалка(я студент, это по работе мне, очень надо а денег на книгу на работе наверно не выделят (гос учреждение :()). Если не трудно отскань и скинь мылом. mailto: atomm@mail.ru
Я, конечно, постараюсь разобраться.



Страницы: 1 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
1-1100436459
Polycom
2004-11-14 15:47
2004.11.28
Код ASCII


3-1098898641
AUS_r4nd0m
2004-10-27 21:37
2004.11.28
Экспорт таблиц из Excel в InterBase


3-1099066953
MAVOR
2004-10-29 20:22
2004.11.28
ПОИСК


1-1100593343
ALS
2004-11-16 11:22
2004.11.28
TChart.Print


8-1093699861
Кирилл
2004-08-28 17:31
2004.11.28
Ошибка командной строки