![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Быстрый доступ к файлу [D7]
pirate © (2006-05-24 21:15:00)Уважаемые мастера!
Пожалуйста, посоветуйте самый быстрый способ побайтового чтения всего файла (Он у меня 16 Мб, загружается около 2 минут). А вот к примеру Lingvo загружает свою базу слов практически мгновенно. Как бы и мне ускорить процесс чтения из файла?
begin...end (2006-05-24 21:54:00) [21]> pirate © (24.05.06 21:44) [6]
Вполне приличный код. У меня он читает 13-мегабайтный файл за время менее 1 секунды. Вероятно, основное время у Вас занимает обработка того, что прочитано (в цикле по i).
pirate (2006-05-24 21:44:00) [22]Адын момент...
procedure LoadDict(path:string;var D:TDict);
var
FromF: file;
NumRead: Integer;
Buf: array[1..512] of Char;
...
i:integer;
..
begin
...
AssignFile(FromF, path);
Reset(FromF, 1);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
for i:=1 to numread do
begin
....
end;
until (NumRead = 0);
CloseFile(FromF);
end;
begin...end (2006-05-24 21:40:00) [23]> pirate © (24.05.06 21:35) [4]
А можно увидеть, КАК Вы его используете?
pirate (2006-05-24 21:35:00) [24]Я вот простой blockread использую. Что-то никогда TFileStream не юзал..
pirate (2006-05-24 21:26:00) [25]А у меня по моему структура тоже не маленькая.
И еще. Может подкинете пару ссылок на инфу о том как юзать TFileStream или свой пример?
begin...end (2006-05-24 21:20:00) [26]А зачем читать файл побайтно?
Cash (2006-05-24 21:20:00) [27]Потаму, что Lingvo не побайтово читает! У него есть структура словаря.
Словарь в файле, программа читает структуру и формирует словарь.
Поэтому она работает быстрее.
Используй TFileStream, низкий уровень и всякие такие примочки хорошо
сказываются на общении с файлом.