|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.08.2015, 17:11 | #1 |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
Изменить байты в файле
Здравствуйте.
Есть файл (File of Byte) с данными (аналог БД), нужно поменять в нем по определенному адресу байты. Знаю, что можно создать массив, записать в него все байты из файла, перезаписать в массиве нужные байты, и сохранить его заново. Но, проблема в том, что файл имеет большой размер, и такой способ требует много времени для выполнения. Может быть, есть возможность поменять только нужные байты без полной перезаписи файла? |
05.08.2015, 17:17 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
программа — запись алгоритма на языке понятном транслятору
|
05.08.2015, 17:26 | #3 |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
evg_m, что-то я не пойму, как его использовать, что бы после записи нужных байт, не удалилось остальное содержимое файла?
Так не получается: Код:
|
05.08.2015, 17:44 | #4 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Автор
Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
05.08.2015, 17:58 | #5 |
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
JUDAS, TFileStream это класс, который описан во внешнем unit-файлы, не хотелось бы на WinApi использовать лишние unit'ы из-за одного класса. Плюс, сомневаюсь, что FileStream не перезаписывает заново весь файл :/
P.S. Может есть какая-то возможность решить хотя бы на Assembler'e, если на чистом Pascal'е такой возможности нет? |
05.08.2015, 20:55 | #6 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Автор, никогда так не говори. Лучше напиши - я не знаю
Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
05.08.2015, 21:41 | #7 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Если программа написана на чистом WinAPI, т.е. VCL-юниты не используются нигде и размер ехе мизерный, то вот есть такая функция в пакете delphi works:
Код:
- OpenFile(); - SetFilePointer(); - WriteFile(). Хватит насиловать мёртвый паскакаль! Паскальными IO-функциями можно дербанить файлы не более 4 Гб. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
Последний раз редактировалось Stilet; 06.08.2015 в 09:24. |
06.08.2015, 10:09 | #8 | ||
Форумчанин
Регистрация: 20.04.2009
Сообщений: 136
|
JUDAS, min@y™, большое спасибо Вам!
Использовал код, который написал JUDAS и всё получилось... Цитата:
Цитата:
Еще раз, большое спасибо за помощь |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменить переменную в .exe файле извне | CantStop0708 | Visual C++ | 2 | 12.01.2013 14:42 |
Изменить кодировку в файле | Ecosasha | Свободное общение | 0 | 20.08.2011 13:24 |
Как программно изменить CheckBox в файле Excel | Sharmon | Общие вопросы Delphi | 10 | 23.06.2011 15:02 |
Изменить информацию в файле на сайте! ftp | KWN, lnc | Работа с сетью в Delphi | 2 | 20.02.2010 17:32 |
Помогите заменить байты в файле | Dax | Общие вопросы Delphi | 3 | 21.06.2007 10:24 |