Страница: 1 | 2 |
Вопрос: Вопрос по отображение HEX
Добавлено: 01.11.04 18:48
Автор вопроса: DaSharm | Web-сайт:
Как лучше всего организовать отображение HEX данных?Имею ввиду контрол, для отображения HEX, как в отладчиках или HEX редакторах. Есть какие-то готовые решения кроме активиксов?
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 01.11.04 21:40
Есть пример шестнадцатиричного редактора
Все зависит от того что за HEX'ы ты собрался отображать, если данные, то как в редакторах, если чиста, то можно как в отладчике
(imho)
Номер ответа: 2
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #2
Добавлено: 02.11.04 03:24
Нужно либо точечный шрифт (не векторный), либо расчитывать 16 позиций по горизонтали + адреса слева + символьное представление. У меня на сайте лежит сделанная первым способом (через Terminal), но сайт почти всегда недоступен.
Номер ответа: 3
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #3
Добавлено: 02.11.04 06:04
Или вот есть контрол
Rem Автор - Беляев Данила [outen@mail.ru]
' Контрол был написан на скорую руку. Оптимизировать код и _
изобретать быстрые методы вывода я не стал - лень _
Контрол нормально работает с длиной текста не более 32кб, _
т.к. сделан для просмотра небольших заголовков...
Option Explicit
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function DrawText Lib "user32" Alias "rawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private rct_Text As RECT
Private str_Text As String
Private arr_Text() As String
Private lng_Offset As Long
Public Function Update() As Long
On Error Resume Next
Dim str_Update As String
For Update = vsbScroll To vsbScroll + lng_Offset
str_Update = str_Update & arr_Text(Update) & vbNewLine
Next
Cls
 rawText hdc, str_Update, -1, rct_Text, 0
 rawEdge hdc, rct_Text, 2, 1 Or 2 Or 4 Or 8
End Function
Public Property Get Text() As String
Text = str_Text
End Property
Public Property Let Text(ByVal str_NewText As String)
On Error Resume Next
str_Text = str_NewText
Erase arr_Text
ReDim arr_Text(Round(Len(str_Text) / 16) - 1)
Dim lng_Line As Long
Dim lng_Char As Long
Dim str_Temp As String
Dim str_Char As String
For lng_Line = 0 To Bound(arr_Text)
str_Temp = String(16, Chr(0))
str_Temp = Right(Text, Len(Text) - lng_Line * 16)
For lng_Char = 1 To Len(str_Temp)
str_Char = VBA.HEX(Asc(Mid(str_Temp, lng_Char, 1)))
If Len(str_Char) = 1 Then str_Char = "0" & str_Char
If lng_Char = 8 Then str_Char = str_Char & " " Else str_Char = str_Char & " "
arr_Text(lng_Line) = arr_Text(lng_Line) & str_Char
Next
Cls
' Сделаем вывод процента обработки, а то если влить много текста, то юзер подумает что прога повисла...
Print "Формирование массива" & vbNewLine & "Выполнено: " & Fix((lng_Line / Bound(arr_Text)) * 100) & "%"
DoEvents
Next
If Bound(arr_Text) >= lng_Offset Then vsbScroll.Enabled = True: vsbScroll.Max = Bound(arr_Text) - lng_Offset + 1 Else vsbScroll.Enabled = False
Update
End Property
Private Sub UserControl_Initialize()
lng_Offset = ScaleHeight \ TextHeight(vbNullString)
End Sub
Private Sub UserControl_Resize()
On Error Resume Next
' Выравниваем ширину контрола на (16x2+2+14)x[ширина символа]+[ширина прокрутки]-[пара пикселов для рамки]...
' Для контрола рекомендую использовать только моноширный шрифт...
Width = (TextWidth(String(49, " ") + vsbScroll.Width) * Screen.TwipsPerPixelX
vsbScroll.Move ScaleWidth - vsbScroll.Width - 1, 1, vsbScroll.Width, ScaleHeight - 2
GetClientRect hwnd, rct_Text
' небольшой оптимизатор - чтоб при каждой прокрутке списка _
не обращаться к свойствам напрямую...
lng_Offset = ScaleHeight \ TextHeight(vbNullString)
If Bound(arr_Text) >= lng_Offset Then vsbScroll.Enabled = True: vsbScroll.Max = Bound(arr_Text) - lng_Offset + 1 Else vsbScroll.Enabled = False
Update
End Sub
Private Sub vsbScroll_Change()
Update
End Sub
Private Sub vsbScroll_Scroll()
Update
End Sub
Номер ответа: 4
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #4
Добавлено: 02.11.04 06:08
Странно, из России можно зайти на мой сайт, а с Украины нет.
Вот мой. Спасибо ZagZag'у
http://basicproduction.nm.ru/bphv.rar
Номер ответа: 5
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #5
Добавлено: 02.11.04 06:13
Странно, Павел, посмотри на тег CODE - к меня многолинейные комменты с _ разделитетелем работали...
Номер ответа: 6
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #6
Добавлено: 02.11.04 15:21
Нельзя, потому что на nm.ru был розмещен сайт, в котором прикалывались с Януковича и Укртелеком прикрыл доступ к nm.ru. Подробнее на http://www.yanukovich.at/
Номер ответа: 7
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #7
Добавлено: 02.11.04 15:27
У меня открыт доступ к nm.ru , но всеравно никак немогу загрузить файл, пришли мне, пожалуйста, по почте если будет время, ок?
Номер ответа: 8
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #8
Добавлено: 03.11.04 00:28
Щаз, про Янковича дочитаю. Прикольно, особенно про переодетых работников милиции. Хотя я милицию уважаю по привычке (ещё с совдеповских времён), но всё же эта организация в тепершнем состоянии вряд ли имеет право носить это имя. Милиция должна защищать мирных граждан от преступников, а для разгона демонстрантов существуют внутренние войска.
Номер ответа: 9
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #9
Добавлено: 03.11.04 00:36
Народный депутат Леонид Кравчук считает, что поскольку Янукович сидел в другой стране, его следует считать не зеком, а военнопленным.
))
Номер ответа: 10
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #10
Добавлено: 03.11.04 00:50
Ну это уже наглость по моему:
Из заявления пресс-службы телеканала Интер:
"За выдающиеся достижения в области развития немецкой классической школы пропаганды Интерканалу присвоено почетное звание
"Унтерканал им. Й. Геббельса"
Интересно, где это 9 мая избивают ветеранов войны, а фашистам дарят машины? Угадайте с первого раза.
Номер ответа: 11
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #11
Добавлено: 03.11.04 00:55
Журналистка спрашивает на пресс-конференции у Виктора Януковича:
- Виктор Фёдорович, скажите какие вы любите передачи??
Янукович :
- Ну-у-у-у... сигареты, чай...
Номер ответа: 12
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #12
Добавлено: 03.11.04 01:15
Всё, отослал.
Номер ответа: 13
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #13
Добавлено: 03.11.04 18:13
Мне тоже этот понравился
А за примерчик спасибо, скоро крутую прогу напишу, форумляни увидят
Номер ответа: 14
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #14
Добавлено: 04.11.04 04:10
Ану колись. ))
Номер ответа: 15
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #15
Добавлено: 04.11.04 15:35
Ты уже, кажись, догадался