powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как читать фаил в шестнадцатеричной форме ???
7 сообщений из 7, страница 1 из 1
Как читать фаил в шестнадцатеричной форме ???
    #33483020
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
пишу процедуру чтения файла в переменную в шестнадцатеричной форме
но вот проблема если в байте встречается ноль то он пропускается.
Как решить эту проблему наиболее коротким способом или может быть
есть какаянибуть функция, которая сразу читает в шестнадцатеричной форме?


Open "c:\file" For Binary As #1
For n = 1 To 128
Get #1, n, rHEX
fil$ = fil$ + Hex(rHEX)
Next n
...
Рейтинг: 0 / 0
Как читать фаил в шестнадцатеричной форме ???
    #33483225
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost_XOpen "c:\file" For Binary As #1
Dim rHEX as Byte
For n = 1 To 128
Get #1,, rHEX
fil$ = fil$ + Hex(rHEX)
Next n
...
Рейтинг: 0 / 0
Как читать фаил в шестнадцатеричной форме ???
    #33483257
Ghost_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM Ghost_XOpen "c:\file" For Binary As #1
Dim rHEX as Byte
For n = 1 To 128
Get #1,, rHEX
fil$ = fil$ + Hex(rHEX)
Next n

У меня именно так и записана переменная "Dim rHEX as Byte" только в самом начале, а я взял середину процедуры, как раз это и не решает проблему с нулями.

Конечно, можно добавить условие типа:

Private Sub Form_Load()
Dim rHEX As Byte
Open "c:\file" For Binary As #1
For n = 1 To 128
Get #1, , rHEX
f$ = Hex(rHEX)
If Len(f$) = 1 Then
fil$ = fil$ + "0" + f$
Else
fil$ = fil$ + f$
End If
Next n
End Sub

но может, есть вариант по короче???
...
Рейтинг: 0 / 0
Как читать фаил в шестнадцатеричной форме ???
    #33483616
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А-а, понял, у тебя лидирующий ноль после HEX()-преобразования не появляется...
Так только твоим методом:
Код: plaintext
fil$=fil$+iif(len(f$)= 1 ;"0";''')+f$
...
Рейтинг: 0 / 0
Как читать фаил в шестнадцатеричной форме ???
    #33484081
AndreyF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO Вас несет... Файлы по байтам читать...

Не проще ли так:

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim m() as Byte

Open "c:\file" For Binary As # 1 
Redim m(LOF( 1 )- 1 )
Get # 1 ,, m
Close # 1 
...
Рейтинг: 0 / 0
Как читать фаил в шестнадцатеричной форме ???
    #33485577
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AndreyF]IMHO Вас несет... Файлы по байтам читать...[quot]
Так все равно каждый байт преобразовывать в string$,
плюс (судя по коду) человеку и нужно все 128 первых байт, тогда уж:
Код: plaintext
1.
m$=string( 128 ," ")
get # 1 ,,m$
и далее разбирать m$
...
Рейтинг: 0 / 0
Как читать фаил в шестнадцатеричной форме ???
    #33487527
AndreyF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMи далее разбирать m$

Кстати, вот сюда я кинул исходники компонента для шестнадцатеричного редактора... Желающие могут использовать...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как читать фаил в шестнадцатеричной форме ???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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