![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#41 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
не помню как на паскале(есть же аналоги)
но через TFileStream смещаешь указатель (Seek), и далее пишем... (или я забыл чтото?!?) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#42 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Все правильно. Я делал так. Используй буфер, куда читаются данные из файла с того места где будет произведена запись, затем туда помещаются новые данные, потом снова чтение и запись.
===х===х==== помещаем в буфер х===х записываем в файл у==у результат ===у==ух=== помещаем во второй буфер х=== записываем в файл из первого буфера х===х ===у==ух===х и т.д. Так быстрей, меньше операций с диском (а больше с памятью). Для скорости нужно подобрать размер буфера (что-то вроде кратное 512 байтам).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#43 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Попробуйте просто скопировать (средствами Windows) данный файл и засеките время. вот такое время (приблизительно, конечно, просто для оценки порядка быстродействия) Вам и потребуется, если Вы что-то вставляете в начало файла - СДВИГАЯ всё остальное содержимое. (я выделил слово сдвигая, т.к. если предусмотреть свободное место в начале файла, то остаток файла можно не двигать. тогда не нужны все эти "пляски с бубнами" вокруг чтения в память и записи в отдельном потоке). |
|
![]() |
![]() |
![]() |
#45 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
На что тебе большой объем памяти?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#46 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#48 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]()
Вы собираетесь весь файл загружать в память?
А не проще ли загрузить необходимый кусок? |
![]() |
![]() |
![]() |
#49 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Ему это пытаются донести уже не один пост. Достаточно иметь буфер объемом не более чем двухкратное изменение размеров данного файла. И если он вставляет 10 байтов, то обычного динамического массива of Byte, ему хватит за глаза и еще останется.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа для работы с файлами (паскаль). | DeamoniC | Помощь студентам | 4 | 09.06.2009 23:21 |
Посоветуйте прогу для работы с реестром | Денис Коржанов | Софт | 4 | 28.01.2009 11:17 |
Программа для работы с dfx-файлами | Sanek777 | Фриланс | 5 | 11.11.2008 21:04 |
Библиотека для работы с *.psd-файлами. | vinni | Мультимедиа в Delphi | 3 | 23.10.2008 20:29 |
Прога для работы с текстовыми файлами | f-only | Софт | 4 | 04.10.2007 23:35 |