![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как дописать данные в начало файла? [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]А другой путь (загрузка в память будет еще дольше), большой размер, огромное количество времени это сколько?
Если это не такой большой как кажется, то может загрузить в память? Без копирования тоже можно, счечала читаешь блок в память, затем пишешь данные, потом повторяешь несколько раз, обойдешься одним файлом, копируй сразу кусками по несколько мегабайт.