Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2009, 13:10   #41
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не помню как на паскале(есть же аналоги)
но через TFileStream смещаешь указатель (Seek), и далее пишем...
(или я забыл чтото?!?)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.08.2009, 13:22   #42
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Все правильно. Я делал так. Используй буфер, куда читаются данные из файла с того места где будет произведена запись, затем туда помещаются новые данные, потом снова чтение и запись.

===х===х====
помещаем в буфер х===х
записываем в файл у==у
результат ===у==ух===
помещаем во второй буфер х===
записываем в файл из первого буфера х===х
===у==ух===х
и т.д.

Так быстрей, меньше операций с диском (а больше с памятью). Для скорости нужно подобрать размер буфера (что-то вроде кратное 512 байтам).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.08.2009, 13:40   #43
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
просто охота большую скорость,есть такая прога как img-tools для
gta-sa вот архив сам по себе большой вроде 900mb,и ты добавляешь в
него файл и инфу в начали файла буквально 3-4 сек и файл добавлен в архив?
надо анализировать, что эта утилита делает с файлом. Возможно, что просто записывает байты в сам файл (при этом его размер не имеет значения - это будет мгновенно), либо записываемый файлик дописывается в конец архива... либо ещё что-то..
Попробуйте просто скопировать (средствами Windows) данный файл и засеките время. вот такое время (приблизительно, конечно, просто для оценки порядка быстродействия) Вам и потребуется, если Вы что-то вставляете в начало файла - СДВИГАЯ всё остальное содержимое. (я выделил слово сдвигая, т.к. если предусмотреть свободное место в начале файла, то остаток файла можно не двигать. тогда не нужны все эти "пляски с бубнами" вокруг чтения в память и записи в отдельном потоке).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.08.2009, 07:26   #44
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
Мне и GetMem хватает.
GetMem - может выделять только не большой участок памяти а
VirtualAlloc - для больших участков и GlobalAlloc для буфера самый раз.
VintProg вне форума Ответить с цитированием
Старый 11.08.2009, 08:41   #45
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

На что тебе большой объем памяти?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.08.2009, 08:57   #46
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
GetMem - может выделять только не большой участок памяти
Впервые слышу. Никогда не жаловался.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.08.2009, 10:49   #47
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
На что тебе большой объем памяти?
На большие файлы.
VintProg вне форума Ответить с цитированием
Старый 12.08.2009, 11:06   #48
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Вы собираетесь весь файл загружать в память?
А не проще ли загрузить необходимый кусок?
psycho-coder вне форума Ответить с цитированием
Старый 12.08.2009, 13:02   #49
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Вы собираетесь весь файл загружать в память?
А не проще ли загрузить необходимый кусок?
Ему это пытаются донести уже не один пост. Достаточно иметь буфер объемом не более чем двухкратное изменение размеров данного файла. И если он вставляет 10 байтов, то обычного динамического массива of Byte, ему хватит за глаза и еще останется.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 13.08.2009, 10:10   #50
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Вот както народ умеет вставлять данные на нужную позицию с помошью
TMemoryStream вот только как?
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для работы с файлами (паскаль). 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