powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / найти в HEX
5 сообщений из 5, страница 1 из 1
найти в HEX
    #32075349
klever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как на vb6 написать код, который открывает заданную dll-ку в HEXе,
Ищит по заданному адресу символ (код символа) и заменяет его на заданный символ (код символа), потом сохраняет модифицированную dll-ку ?
...
Рейтинг: 0 / 0
найти в HEX
    #32075395
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм.. Чем в данном случае отличается dll от бинарного файла другого типа? И причем здесь HEX, если это просто представление числа для кода ANSI?
HOWTO: Use Binary File Access with Visual Basic
...
Рейтинг: 0 / 0
найти в HEX
    #32075703
klever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну может кто писал простенький hex редактор?
...
Рейтинг: 0 / 0
найти в HEX
    #32076992
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Ну может кто писал простенький hex редактор?

Там в принципе писать нечего. Вот примерчик hex-вьювера на Excel (Ну нету у меня vb, нету):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
Sub HexView()
    Dim lcFile As String    ' Имя файл
    Dim lcChar As String    ' Буфер для символа
    Dim lcString As String  ' Сам не знаю зачем, но так принято
    Dim lcHex As String     ' Значение в HEX
    Dim i As Integer
    Dim x As String         ' Колонка Excel
    Dim y As Integer        ' Ряд Excel
    Close # 1                 ' Debug
    ' Выбор файла, лень писать красиво
    lcFile = InputBox( "File:" ,  "Open file" ,  "D:\boot.ini" )
    If lcFile =  "" Then Exit Sub
    lcChar = String(1 , "  ") ' размер буфера 1 символ
    lcString = ""
    Open lcFile For Binary Access Read As #1 ' открытие файла на чтение
    If LOF(1 ) =  0  Then MsgBox "File is not open ": Exit Sub
    ' Чистим лист Excel
    Cells.Select
    Selection.ClearContents
    x = "A"
    y = 1
    Do While Not EOF(1)       ' пока не встретится конец файла
       Get #1 , , lcChar       ' считываем один символ
       If Asc(lcChar) > 31 Then
            lcString = lcString & lcChar
       Else
            lcString = lcString & " " ' Непечатные символы на фиг
       End If
       ' Перевод в HEX
       lcHex = Hex(Asc(lcChar))
       If Len(lcHex) = 1 Then lcHex = "0" & lcHex
       If Len(lcHex) = 0 Then lcHex = "00"
       ' Запись в ячейку Excel
       Range(x & y).Select
       ActiveCell.NumberFormat = "@ "
       ActiveCell.FormulaR1C1 = lcHex
       x = Chr(Asc(x) + 1 )
       ' На 16-й колонку добавляем новый ряд
       If x = "Q" Then x = "A": _
       Range("Q" & y).Select: _
       ActiveCell.FormulaR1C1 = lcString: _
       lcString = "": y = y + 1:
    Loop
    ' Остатки
    Range("Q " & y).Select
    ActiveCell.FormulaR1C1 = lcString
    Close #1                     ' закрываем файл
    ' Ровняем, чтоб красиво
    For i = Asc("A ") To Asc(" Q ")
        Columns(Chr(i) & " : " & Chr(i)).EntireColumn.AutoFit
    Next
    ' Прыгаем в начало листа Excel
    Range(" A1").Select
End Sub


Замечания:
1. Копать хелп в сторону Open, Get, Put, Seek.
2. Для Вашей задачи никакой hex на hex не нужен, просто нужно заменить один символ на другой по заданому адресу. В самом простом случае, все сводится к
Код: plaintext
1.
Open lcFile For Binary Access Write As # 1 
Put # 1 , lnPosition, lcChar
...
Рейтинг: 0 / 0
найти в HEX
    #32077009
klever
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пасиба блин бальшое :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / найти в HEX
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]