Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: HEX перезапись. Добавлено: 02.05.08 03:27  

Автор вопроса:  JacK | Web-сайт: idiot.ru | ICQ: 9580088 
Почему не работает такой способ перезаписи?
Dim t
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-сайт: idiot.ru
 Профиль | | #1
Добавлено: 02.05.08 03:48
А вот в этом случае в начало файла добавляется лишний нулевой байт. Почему????
Dim w() As Byte
    
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-сайт: domkratt.com
 Профиль | | #2
Добавлено: 02.05.08 11:11
ReDim w(LOF(1))
For i = 1 To LOF(1)

Еще бы. Массив нумеруется с нуля, а ты читаешь с единицы.
Когда переписываешь файл в бинарном реиме, сначала удаляй его, а потом пиши, если собираешься изменить размер. Ибо васик сам размер файла не поменяет, точнее, увеличит, но не уменьшит.

Ответить

Номер ответа: 3
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #3
Добавлено: 04.05.08 17:55
Dim t As String

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам