Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как быстро разбить большой файл на много маленьких? [Delphi, Windows]


Страницы:   1 2

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]

Зачем же по байтц, чиатй по блоку


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо