Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как читать фаил в шестнадцатеричной форме ??? / 7 сообщений из 7, страница 1 из 1
14.01.2006, 17:41:24
    #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
15.01.2006, 04:30:19
    #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
15.01.2006, 08:10:59
    #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
15.01.2006, 16:36:47
    #33483616
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать фаил в шестнадцатеричной форме ???
А-а, понял, у тебя лидирующий ноль после HEX()-преобразования не появляется...
Так только твоим методом:
Код: plaintext
fil$=fil$+iif(len(f$)= 1 ;"0";''')+f$
...
Рейтинг: 0 / 0
16.01.2006, 08:38:14
    #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
16.01.2006, 17:17:20
    #33485577
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать фаил в шестнадцатеричной форме ???
[quot AndreyF]IMHO Вас несет... Файлы по байтам читать...[quot]
Так все равно каждый байт преобразовывать в string$,
плюс (судя по коду) человеку и нужно все 128 первых байт, тогда уж:
Код: plaintext
1.
m$=string( 128 ," ")
get # 1 ,,m$
и далее разбирать m$
...
Рейтинг: 0 / 0
17.01.2006, 15:42:36
    #33487527
AndreyF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как читать фаил в шестнадцатеричной форме ???
AndreTMи далее разбирать m$

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


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