Страница: 1 |
Страница: 1 |
Вопрос: HEX перезапись.
Добавлено: 02.05.08 03:27
Автор вопроса: JacK | Web-сайт:
Почему не работает такой способ перезаписи?
Open "c:\111.exe" For Binary As 1
t = Input$(LOF(1), 1)
Close #1
Open "c:\222.exe" For Binary As 2
Put #2, , t
Close #2
т.е. он работает! Но, в начало бинарника попадают лишнее байты "08005702". Удаляю их и всё работает!
Что это за аномалия?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #1
Добавлено: 02.05.08 03:48
А вот в этом случае в начало файла добавляется лишний нулевой байт. Почему????
Open "c:\111.exe" For Binary As 1
ReDim w(LOF(1))
For i = 1 To LOF(1)
Get #1, i, w(i)
Next
Close #1
Open "c:\222.exe" For Binary As 2
Put #2, , w()
Close #2
Номер ответа: 2
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #2
Добавлено: 02.05.08 11:11
For i = 1 To LOF(1)
Еще бы. Массив нумеруется с нуля, а ты читаешь с единицы.
Когда переписываешь файл в бинарном реиме, сначала удаляй его, а потом пиши, если собираешься изменить размер. Ибо васик сам размер файла не поменяет, точнее, увеличит, но не уменьшит.
Номер ответа: 3
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #3
Добавлено: 04.05.08 17:55
Dim t As String