![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с файлами с помощью ф-ций _lopen и _lread. [D5]
Makuha © (2004-12-06 14:10:00)Привет всем!
Стоит задача: в некотором файле большого размера (около 1 Gb) найти данные, которые повторяются. Работал с функцией ReadBlock и читал данные в цикле до конца файла. Считаный блок обрабатывал сам (что и дальше собираюсь делать). Скорость не удовлетворяет. Блок считаных данных составляет 64к. А хотелось бы считать больше.
Подскажите, как с помощью ф-ций _lopen и _lread открыть и читать данные из файла. Не могу разобраться, как это правильно делать.
В HELP нашел вот такое описание,
HFILE _lopen(
LPCSTR lpPathName, // pointer to name of file to open
int iReadWrite // file access mode
);
UINT _lread(
HFILE hFile, // handle to file
LPVOID lpBuffer, // pointer to buffer for read data
UINT uBytes // length, in bytes, of data buffer
);
а как правильно реализовать - не знаю. Буду благодарен за кусок исходника с описанием.
Ответы можно присылать на e-mail: mvalera@ua.fm и на форум.
С ув., Makuha.
Fay (2004-12-06 19:58:00) [1]Правильно - это никак. Смотри CreateFile/ReadFile/SetFilePointer/ReadFile/WriteFile и т.д.
_lopen
The _lopen function opens an existing file and sets the file pointer to the beginning of the file.
Note This function is provided only for compatibility with 16-bit versions of Windows. New applications should use the CreateFile function.
Poirot (2004-12-06 17:18:00) [2]Я сомниваюсь что можно получить прирост от использования подобных средств.. Например можно же и через WinAPI (CreateFile(), ... , Mapped files, etc), и посмотреть алгоритм поиска. боюсь что он наиболее слабое по скорости место в данном случае.
А уж по теме - MSDN И там пример помоему есть:)