How to write binary data to a file

L

Lars Uffmann

Hi everyone!

I'm probably struck blind at the moment, but I cannot seem to get this
thing right:

I want the equivalent of
Const bufferSize = 10000&
Dim buffer as String

Open "myfile.txt" For Binary Access Read As #1
buffer = Input(bufferSize, 1)
for write operations.

I.e.

Open "myfile.txt" For Binary Access Write As #1
buffer = "something"
Write #1, buffer, len (buffer)

However, Write in that form is not compatible with Binary mode, and if I
open the file "for output", Write packs my buffer string into text
qualifying double quotes. Put, however, totally messes up the data when
I use it like

Open "myfile.txt" For Binary Access Write As #1
buffer = "something"
Put #1, , buffer

and it doesn't seem to be what I want anyways. I could swear I've done
this before - successfully - but right now I don't know how.

Anyone able to help me? I want the output file to contain exactly the
number of bytes that equals the length of buffer, and nothing else.

Thanks in advance!

Lars
 
L

Lars Uffmann

Lars said:
Open "myfile.txt" For Binary Access Write As #1
buffer = "something"
Put #1, , buffer

and it doesn't seem to be what I want anyways. I could swear I've done
this before - successfully - but right now I don't know how.

Solved my problem: actually I didn't do what I wrote above, but rather I
tried directly outputting a string constant - and Put needs a byref
variable.
The above code works just fine.

Best Regards,

Lars
 
R

RB Smissaert

Is this what you need?


Sub StringToTextFile(strFile As String, strText As String)

Dim hFile As Long

On Error GoTo ERROROUT

hFile = FreeFile
Open strFile For Binary As #hFile
Put #hFile, , strText
Close #hFile

Exit Sub
ERROROUT:

If hFile > 0 Then
Close #hFile
End If

End Sub


RBS
 
L

Lars Uffmann

Yes - I was making a mistake, as stated above. Thank you for your time &
response!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top