![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как быстро разбить большой файл на много маленьких? [Delphi, Windows]
Sormy © (2004-08-02 05:09:00)Имеется файлик на 160 мегов, в начале файлика записаны размеры ресурсов, а затем эти ресурсы следуют один за другим (около 1500).
Метод "читать по байту и записывать в соответсвующий файл на винте" работает ОЧЕНЬ медленно.
Причем, TStream работает даже намного медленнее, чем стандартные blockread, blockwrite...
Подскажите, как это лучше реализовать.
И еще, приложение при этом подвисает и не реагирует на кнопки, сворачивания, разворачивания. Как этого избежать?
Koster (2004-08-02 11:34:00) [21]Поддерживаю [1]. Выдели буфер в несколько метров, копируй через буфер BlockRead/BlockWrite. Большинство твоих ресурсов будут копироваться за один раз. Побайтовое копирование ни в какое сравнение по скорости не пойдет.
Iconka (2004-08-02 11:30:00) [22]Попробуй по другому организовать хранение данных
TUser (2004-08-02 10:57:00) [23]> Причем, TStream работает даже намного медленнее, чем стандартные blockread, blockwrite...
Это странно. TFileStream вообще-то очень быстро все может прочитать, а потом копируй нужное тебе кол-во байтов.
olookin (2004-08-02 10:13:00) [24]TFileStream.Position?
drew82 (2004-08-02 08:27:00) [25]а чтобы кнопки нажимались используй Application.ProcessMessages
Anatoly Podgoretsky (2004-08-02 07:44:00) [26]Зачем же по байтц, чиатй по блоку