有两个问题
1.我现在有一个字符串数组a(1000),保存都是十六进制数据。请问如何保存成二进制文件。
2.读取以上保存的文件,在TextBox1中显示为原来的十六进制数据,在TextBox2中显示为以保存的二进制数据。(用于测试保存的二进制文件是否正确)。请各位帮帮忙,在线等。

解决方案 »

  1.   

    http://topic.csdn.net/u/20080407/00/1965f31d-83bc-4006-a1ac-77fe1e5d7e94.html
      

  2.   

    不知这个是否有用Option ExplicitPrivate Sub Command1_Click()
        binary2ascii "d:\0.jpg", "d:\1.txt"
        ascii2binary "d:\1.txt", "d:\1.jpg"
    End SubPrivate Function gethex(ByVal c As Byte) As String
        Dim s As String
        s = Trim(Hex$(c))
        If c < 16 Then
            s = "0" & s
        End If
        gethex = s
    End Function
    Private Function h2s(ByRef h() As Byte, ByVal start As Long, ByVal length As Long) As String
        Dim s As String
        Dim i As Long
        For i = start To start + length - 1
            s = s & gethex(h(i)) & " "
        Next i
        h2s = s
    End FunctionPrivate Function binary2ascii(ByVal src As String, ByVal dest As String) As Boolean
        Dim len1 As Long
        Dim bin() As Byte
        len1 = FileLen(src)
        ReDim bin(0 To len1 - 1) As Byte
        Open src For Binary As #1
            Get #1, , bin
        Close #1
        Dim s As String
        
        Dim i As Long
        Open dest For Output As #1
            For i = 0 To len1 - 1 Step 16
                If len1 - 1 - i > 16 Then
                    s = h2s(bin, i, 16)
                Else
                    s = h2s(bin, i, len1 - i)
                End If
                Print #1, s
            Next i
        Close #1
        
        binary2ascii = True
    End FunctionPrivate Function parse(ByVal s As String, ByRef bin() As Byte, ByVal offset As Long) As Long
        s = Replace(s, " ", "")
        Dim i As Long
        Dim l As Long
        For i = 1 To Len(s) Step 2
            bin(offset + l) = Val("&h" & Mid(s, i, 2))
            l = l + 1
        Next i
        parse = l
    End Function
    Private Function ascii2binary(ByVal src As String, ByVal dest As String) As Boolean
        Dim s As String
        Dim len1 As Long
        Dim parselen As Long
        Dim bin(0 To 15) As Byte
        Dim i As Long
        
        Open dest For Binary As #2
        Close #2
        Kill dest
        
        Open src For Input As #1
        Open dest For Binary As #2
        Do
            Line Input #1, s
            len1 = parse(s, bin, 0)
            If 16 = len1 Then
                Put #2, , bin
            Else
                For i = 0 To len1 - 1
                    Put #2, , bin(i)
                Next i
            End If
        Loop While Not EOF(1)
        Close #2
        Close #1
        ascii2binary = True
    End Function
      

  3.   

    Private Sub CommandButton1_Click()      '二进制写
        Dim A(1000) As String, I As Long
        
        For I = 0 To 1000
            A(I) = "123"
        Next I
        Open "d:\123.tt" For Binary As #1
            Put 1, , A
        Close #1
    End SubPrivate Sub CommandButton2_Click()      '二进制读,放在数组里面
        Dim A(1000) As String
        
        Open "d:\123.tt" For Binary As #2
            Get 2, , A
        Close #2
        
        Debug.Print A(345)
    End SubPrivate Sub CommandButton3_Click()      '二进制读,放在字符串缓冲区里面
        Dim sBin As String
        
        Open "d:\123.tt" For Binary As #3
            sBin = String(LOF(3), Chr(0))
            Get 3, , sBin
        Close #3
        Debug.Print sBin
    End Sub想怎么显示在界面上,那是你自己的事了.