在vb中怎样从一个二进制文件中取出字节,然后再转换成字符,存进文本文件中?

在vb中怎样从一个二进制文件中取出字节,然后再转换成字符,存进文本文件中?在线等。急!!!那个二进制文件用文

在vb中怎样从一个二进制文件中取出字节,然后再转换成字符,存进文本文件中?在线等。急!!!
那个二进制文件用文本文件打开,是类似与“醞遚匄,馹”这样的,用Ultraedit打开,可以看到“E1   10   61   F8”,这些英文和数字信息对我很有用,如何取得这些信息存储进文本文件,这样用记事本打开就可以看到“E1   10   61   F8”,?

我找了以前人写的程序
'二进制转换为字符串      
    Public       Function       BinaryToString(ByVal       BinaryStr       As       Variant)       As       String          
            Dim       lnglen       As       Long      
            Dim       tmpBin       As       Variant      
            Dim       strC       As       String      
            Dim       skipflag       As       Long      
            Dim       i       As       Long      
            skipflag       =       0      
            strC       =       " "      
               
            If       Not       IsNull(BinaryStr)       Then      
                            lnglen       =       LenB(BinaryStr)      
                            For       i       =       1       To       lnglen      
                                            If       skipflag       =       0       Then      
                                                    tmpBin       =       MidB(BinaryStr,       i,       1)      
                                                    If       AscB(tmpBin)       >       127       Then      
                                                                    strC       =       strC       &       Chr(AscW(MidB(BinaryStr,       i       +       1,       1)       &       tmpBin))      
                                                                    skipflag       =       1      


                                                    Else      
                                                                    strC       =       strC       &       Chr(AscB(tmpBin))      
                                                    End       If      
                                            Else      
                                                    skipflag       =       0      
                                            End       If      
                            Next      
                    End       If      
                    BinaryToString       =       strC      
    End       Function  

这个函数可行么,它的输入项用数组行么,

比如Dim   aryContent()   As   Byte     '用来读取文件的数组,每次读取前要重定义
        Dim   strWrite   As   String         '要写入的文本内容
        strWrite   =   BinaryToString(aryContent)

[解决办法]
将内容写入文本里面

open <file> for binary as #1

put #1, , aryContent

close #1



————————————————————————————————————
写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。

[解决办法]
读取,就使用 get #1, , aryContent

————————————————————————————————————
写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。

[解决办法]
Option Explicit
Dim a As Byte
Dim aa As String
Dim bb As String
Dim i As Integer
Dim nw As Long

Private Sub cmdOpenFileName_Click()
CommonDialog1.ShowOpen
End Sub

Private Sub cmdOpenSave_Click()
Cls
Text2 = " "
bb = " "
Open CommonDialog1.FileName For Binary As #1
For i = 1 + nw To 512 + nw
nw = Seek(1)
Get #1, i, a
Text1 = a
aa = Right$(Hex(a), 2)
If Len(aa) = 1 Then
aa = "0 " & aa
End If
bb = bb & aa & " "
Text2 = Text2 & aa
Text1 = nw
Next


Close #1
Open "C:\wenben.txt " For Append As #1
Print #1, Text2
Close #1
End Sub


[解决办法]
Private Sub Form_Load()
Dim binTmp() As Byte
Dim Filelen, n As Integer

Open "D:\test.dat " For Binary As #1 ‘文件不要太大就可以了~因为后面是写到Textbox里的
Filelen = LOF(1)
ReDim binTmp(Filelen)
binTmp = Input(Filelen, #1)
Close #1

For n = 0 To Filelen
Text1 = Text1 & Format(Hex(binTmp(n)), "00 ") ’记得添加一个textbox 用format控制格式,我在后面加了个空格~
Next
End Sub

[解决办法]
如果是写入文件就
Private Sub Form_Load()
Dim binTmp() As Byte
Dim Filelen, n As Integer

Open "D:\test.dat " For Binary As #1 '文件不要太大就可以了~因为后面是写到Textbox里的
Filelen = LOF(1)
ReDim binTmp(Filelen)
binTmp = Input(Filelen, #1)
Close #1

Open "D:\testOut.txt " For Binary As #1
For n = 0 To Filelen
VarString$ = Format(Hex(binTmp(n)), "00 ")
Put #1, , VarString$
Next
Close #1
End Sub

[解决办法]
strC = strC & Chr(AscW(MidB(BinaryStr, i + 1, 1) & tmpBin))
你这句的意思是
strC = Strc & 重新转换成字符(取ASC码(取字符))
和没变一样,没有取出字符的ASCII数值
应该写成
strC = strC & HEX(AscW(MidB(BinaryStr, i + 1, 1) & tmpBin))

如果你的其他部分的代码没有问题,那么更改以后你应该能够看到取出来的是你想要的16进制数据了