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

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

Как дописать данные в начало файла? [D6, WinXP]


BofA ©   (2002-03-09 16:00:00) 

Есть здоровый файл, нужно добавить данные в его начало. Я для этого создаю новый файл, записываю в него эти данные, а потом дописываю к нему исходный файл, который после этого удаляю. Но из-за большого размера файла это занимает огромное количество времени. Как можно обойтись без копирования?


Набережных С.   (2002-03-10 11:57:00) [1]

Удалено модератором


Anatoly Podgoretsky   (2002-03-10 11:29:00) [2]

Удалено модератором


Набережных С.   (2002-03-10 11:18:00) [3]

Удалено модератором


Anatoly Podgoretsky   (2002-03-10 11:10:00) [4]

Удалено модератором


Набережных С.   (2002-03-10 11:09:00) [5]

Удалено модератором


Anatoly Podgoretsky   (2002-03-10 11:04:00) [6]

Удалено модератором


Набережных С.   (2002-03-10 10:15:00) [7]

Удалено модератором


Anatoly Podgoretsky   (2002-03-10 09:20:00) [8]

Удалено модератором


Builder   (2002-03-10 08:41:00) [9]

Удалено модератором


Anatoly Podgoretsky   (2002-03-09 18:44:00) [10]

Удалено модератором


BofA   (2002-03-09 17:07:00) [11]

С винтами всё хорошо (2xIBM IC35xxxAVVA RAID 0), но всё равно 30 секунд - это слишком много, время - деньги. Зато теперь хоть обхожусь одним файлом, за это - большое спасибо, сам я не догадался.


Anatoly Podgoretsky   (2002-03-09 16:44:00) [12]

Я же предложил тебе вариант без копирования, удаления и переименования. Время это почти не экономит, но работа с одним файлом. А винчестер у тебя хороший, скорость порядка 100 мб/сек


BofA   (2002-03-09 16:29:00) [13]

Файл весит примерно 1,5GB. Долго - это 30 секунд.
Вопрос в том, можно ли как нибудь дописать данные сразу в начало? На уровне файловой системы это понятно : там в каждом блоке файла ссылка на следующий блок, поэтому достаточно поменять ссылки, но мне совершенно не хочется разбираться, как напрямую работать с файловой системой (по-моему, это уже извращение). Может в Delphi есть нечто подобное?


Anatoly Podgoretsky   (2002-03-09 16:14:00) [14]

А другой путь (загрузка в память будет еще дольше), большой размер, огромное количество времени это сколько?
Если это не такой большой как кажется, то может загрузить в память? Без копирования тоже можно, счечала читаешь блок в память, затем пишешь данные, потом повторяешь несколько раз, обойдешься одним файлом, копируй сразу кусками по несколько мегабайт.


Наверх

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