Solved

Open files in binary format

Posted on 2004-08-27
3
220 Views
Last Modified: 2010-05-02
Does anyone have the code to open any file in binary format and code to open a file which has been converted to binary back to its original state

e.g. opening a text file in binary so it comes out as 0's and 1's then change that back to whatever was in the text file...

Thanx for your help
0
Comment
Question by:mad_psyso
  • 2
3 Comments
 
LVL 8

Expert Comment

by:mladenovicz
Comment Utility
I am not sure If I understood you properly, but here is the code to load file to byte array

Private Sub ReadBinary(FileName As String)
Dim FileName As String
Dim FN As Long
Dim arrData() As Byte
   
    FN = FreeFile
   
    Open FileName For Binary Access Read As #FN
   
    ReDim arrData(LOF(FN) - 1)

    Get #FN, , arrData()
   
    Close FN

End Sub
0
 

Author Comment

by:mad_psyso
Comment Utility
Open a file in binary format and display it in a textbox then in another textbox convert it from binary back to its original format

If i has a textfile which contained "HELLO" textbox1 should display
01001000 01000101 01001100 01001100 01001111
which is the binary format

Then in the next textbox it should convert
01001000 01000101 01001100 01001100 01001111
back to its real state which would be back to "HELLO"
0
 
LVL 8

Accepted Solution

by:
mladenovicz earned 200 total points
Comment Utility
Public Function BinaryToDecimal(Binary As String) As Long
    Dim n As Long
    Dim s As Integer
   
    For s = 1 To Len(Binary)
        n = n + (Mid(Binary, Len(Binary) - s + 1, 1) * (2 ^ (s - 1)))
    Next s
   
    BinaryToDecimal = n
End Function

Public Function DecimalToBinary(DecimalNum As Long) As String
    Dim tmp As String
    Dim n As Long
   
    n = DecimalNum
   
    tmp = Trim(Str(n Mod 2))
    n = n \ 2
   
    Do While n <> 0
        tmp = Trim(Str(n Mod 2)) & tmp
        n = n \ 2
    Loop
   
    DecimalToBinary = tmp
End Function

Public Function StringToBinary(s As String) As String
Dim i As Integer
Dim R As String
    For i = 1 To Len(s)
        R = R & DecimalToBinary(Asc(Mid(s, i, 1))) & " "
    Next
    StringToBinary = R
End Function

'-- input string should be separated by spaces
Public Function BinaryToString(B As String) As String
Dim i As Integer
Dim Arr() As String
Dim R As String
   
    Arr = Split(B, " ")
   
    For i = LBound(Arr) To UBound(Arr)
        R = R & Chr(BinaryToDecimal(Arr(i)))
    Next
    BinaryToString = R
End Function
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Introduction While answering a recent question (http://www.experts-exchange.com/Q_27402310.html) in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now