Нужно написать программу, которая заменяла бы в другом файле одну строку на другую, в смысле именно внутри файла. Нашёл код, который это делает, но там условие, чтобы заменяемая и заменяющая строки были одной длины, а мне надо, чтобы заменяющая строка могла быть больше... В принципе, можно сделать, чтобы заменяемая строка была дополнена сторонними символами, пробелами, например, а при замещении при надобности их удалять. Но, может быть, можно при замещении большей строкой "сдвигать" оставшуюся часть файла?
amega
4.08.2009 18:10
а такой вариант не подойдет что б, скопировать сожрежимое файла в память, заменить нужно и перезаписать файл?
Unconnected
4.08.2009 18:19
Ну так и будет, или почти так. Вопрос в соответствии длин строк. Попробуй открыть какую нибудь программа HEX-редактором, чтобы нагляднее было, что там внутри:)
volvo
4.08.2009 18:51
Это смотря какой файл (в смысле, формат файла). Может случиться, что даже при замене строк равной длины ты получишь проблемы (скажем, если считается CRC, или что-нибудь еще).
Unconnected
4.08.2009 18:58
Цитата
Это смотря какой файл (в смысле, формат файла). Может случиться, что даже при замене строк равной длины ты получишь проблемы (скажем, если считается CRC, или что-нибудь еще).
А, ну EXE, ничем не упакованный, без проверки контрольной суммы..
volvo
5.08.2009 0:34
А ты попробуй заменить строку на другую через какой-нибудь Resource Editor, или ResHacker, что-то в этом роде. Я к тому, что строка в EXE-файле она ведь тоже по-разному может представляться. Если с помощью вышеперечисленных программ удалось, то можно попробовать и вручную сделать то же самое. Программа, в которой надо что-то менять, твоя или чужая? (я к тому, что если чужая - то почему ты уверен, что она неупакована, и всегда будет таковой?)
Еще один вопрос: Может, проще менять не в файле, а после запуска найти нужный контрол и там поменять текст?
Unconnected
5.08.2009 15:01
Ну, с помощью WinHEX'а получилось. Программа моя, поэтому искомый заменяемый текст будет жёстко задан. И надо, чтобы именно создавался с определённой строкой. Создать можно с помощью ресурса, а как так заменить, я не знаю..
volvo
5.08.2009 16:43
Цитата
Создать можно с помощью ресурса, а как так заменить, я не знаю..
Создать можно с помощью ресурса, а как так заменить, я не знаю.. См. здесь: Sources.RU -> Добавление ресурса
Я, наверное, не так выразился.. Как добавить ресурс, и извлечь его, я знаю, мне надо программно заменить в другом файле строку.
volvo
5.08.2009 17:40
Ты по ссылке-то пройди (то, что ты не был там, я вижу, ты говоришь, ориентируясь на НАЗВАНИЕ, а не на СОДЕРЖАНИЕ )
Unconnected
8.08.2009 21:50
В итоге получилось следующее:) Через HEX-редактор я нашёл в файле адрес нужной строки(в изменяемой программе эта строка предварительно была дополнена пробелами, чтобы был запас длины) и в "билдере" патчил файл побайтно.