HEX видиние

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
young
Обычный пользователь
Обычный пользователь
 
Сообщения: 95
Зарегистрирован: 19.06.2003 (Чт) 15:12
Откуда: Липецк

HEX видиние

Сообщение young » 01.11.2004 (Пн) 14:12

Собственно требуется просто прочесть не текстовый фаил и представить его в hex виде ;) Сам не могу....

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 01.11.2004 (Пн) 14:21

Ну, можно открыть файл For Binary (тут уже будет все равно, текстовый ли он). Ежели именно это и требовалось - радуемся. Ежели нет - конвертим в HEX.
Листинги не горят!

young
Обычный пользователь
Обычный пользователь
 
Сообщения: 95
Зарегистрирован: 19.06.2003 (Чт) 15:12
Откуда: Липецк

Сообщение young » 01.11.2004 (Пн) 14:41

Зык это смог ;), а вот сконвертировать-то как раз и не смог!
---------------------------
<b>Лучше есть белый хлеб у Чёрного моря, чем чёрный хлеб у белого.</b>
<i>У кого склонности к математике? Бери лопату, извлекай корни!</i>

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.11.2004 (Пн) 14:43

Загружаеш файл в переменную

Код: Выделить всё
dim sTxt as string
dim sHexTxt as string

open "C:\1.txt" for input as #1
do until eof(1)
line input #1,s
stxt=stxt & s
loop
close #1
'теперь у нас в переменной sTxt весь файл
'переводим в HEX
for i=1 to len(stxt)
sHexTxt=sHexTxt & hex(asc(mid(stxt i,1)))
next i


вот и все 8)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.11.2004 (Пн) 14:45

Ну или

Код: Выделить всё
Const FILE_BINARY = "C:\1.exe"
Const FILE_TEXT = "C:\1.txt"

Option Explicit

Sub main()
Dim btArray() As Byte, str As String

MsgBox "Íà÷èíàåì ïèñàòü òåêñò"
'==×èòàåì äâîè÷íûé, ïèøåì - òåêñò...
Open FILE_BINARY For Binary As #1
    ReDim btArray(LOF(1) - 1)
    Get #1, , btArray
    str = TranslateBytesToString(btArray)
Close #1
Open FILE_TEXT For Output As #1
    Print #1, str
Close #1
MsgBox "Òåêñò çàïèñàí!" & vbCrLf & "Äåëàåì âñå â îáðàòíîì ïîðÿäêå"

str = ""
'==×èòàåì òåêñò, ïèøåì - äâîè÷íûé...
Open FILE_TEXT For Input As 1
    Line Input #1, str
Close #1
TranslateStringToBytes str, btArray
Open FILE_BINARY & "(copy)" For Binary As #1
    Put #1, , btArray
Close #1
MsgBox "Ãîòîâî!"
End Sub

'==TranslateBytesToString - ôóíêöèÿ âîçâðàùàåò ñòðîêó, à îáðàáàòûâàåò áàéòîâé ìàññèâ
Public Function TranslateBytesToString(ByRef bt() As Byte) As String
Dim I As Long
Dim rt As String
rt = Space(UBound(bt) * 2 + 1)
For I = 0 To UBound(bt)
    Mid(rt, I * 2 + 1, 2) = IIf(bt(I) < &H10, "0", "") & Hex(bt(I))
Next
TranslateBytesToString = rt
End Function

'==TranslateStringToBytes - ôóíêöèÿ îáðàðáàòûâàåò ñòðîêó, à ðåçóëüòàò ïîìåùàåò â ìàññèâ bt
Public Sub TranslateStringToBytes(ByVal vl As String, ByRef bt() As Byte)
Dim I As Long
ReDim bt(Len(vl) \ 2 - 1)
For I = 0 To UBound(bt)
    bt(I) = CByte("&H" & Mid(vl, (I * 2) + 1, 2))
Next
End Sub

Private Sub Form_Load()
main
End Sub

Это не мой код, кто-то на форуме уже это писал
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

young
Обычный пользователь
Обычный пользователь
 
Сообщения: 95
Зарегистрирован: 19.06.2003 (Чт) 15:12
Откуда: Липецк

Сообщение young » 01.11.2004 (Пн) 14:59

Первое отподает, мне не текстовый фаил нужн оперегнать, а вот второй прверю, спасибо!
---------------------------
<b>Лучше есть белый хлеб у Чёрного моря, чем чёрный хлеб у белого.</b>
<i>У кого склонности к математике? Бери лопату, извлекай корни!</i>

marvan
Бывалый
Бывалый
 
Сообщения: 269
Зарегистрирован: 22.06.2004 (Вт) 13:26
Откуда: Москва

Сообщение marvan » 01.11.2004 (Пн) 15:01

Private Sub Form_Load()
    Dim bytData() As Byte
    Dim ff As Integer
    Dim fLen  As Long
    Dim HexEncode As String
    Dim i As Long
    ff = FreeFile
    Open "C:\1.txt" For Binary As #ff
    fLen = LOF(ff) - 1
    ReDim bytData(0 To fLen)
    Get #ff, 1, bytData
    Close #ff
    For i = 0 To fLen
        Sim = Hex$(bytData(i))
        If Len(Sim) = 1 Then Sim = "0" & Sim
        HexEncode = HexEncode & Sim
    Next
    Debug.Print HexEncode
End Sub

Как отформатирован этот код?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 1

    TopList  
cron