Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / найти в HEX / 5 сообщений из 5, страница 1 из 1
03.12.2002, 23:36
    #32075349
klever
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти в HEX
как на vb6 написать код, который открывает заданную dll-ку в HEXе,
Ищит по заданному адресу символ (код символа) и заменяет его на заданный символ (код символа), потом сохраняет модифицированную dll-ку ?
...
Рейтинг: 0 / 0
04.12.2002, 08:41
    #32075395
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти в HEX
Хмм.. Чем в данном случае отличается dll от бинарного файла другого типа? И причем здесь HEX, если это просто представление числа для кода ANSI?
HOWTO: Use Binary File Access with Visual Basic
...
Рейтинг: 0 / 0
04.12.2002, 16:35
    #32075703
klever
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти в HEX
Ну может кто писал простенький hex редактор?
...
Рейтинг: 0 / 0
07.12.2002, 13:42
    #32076992
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти в HEX
> Ну может кто писал простенький 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
07.12.2002, 14:54
    #32077009
klever
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
найти в HEX
пасиба блин бальшое :)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / найти в HEX / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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