Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Open files in binary format

Posted on 2004-08-27
Medium Priority
233 Views
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...

0
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2

LVL 8

Expert Comment

ID: 11914474
I am not sure If I understood you properly, but here is the code to load file to byte array

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

ID: 11914609
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

ID: 11914728
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

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
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…
###### Suggested Courses
Course of the Month4 days, 17 hours left to enroll