ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to write binary data to a file (https://www.excelbanter.com/excel-programming/415257-how-write-binary-data-file.html)

Lars Uffmann

How to write binary data to a file
 
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

Lars Uffmann

How to write binary data to a file (solved)
 
Lars Uffmann wrote:
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

RB Smissaert

How to write binary data to a file
 
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


"Lars Uffmann" wrote in message
...
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



Lars Uffmann

How to write binary data to a file
 
Yes - I was making a mistake, as stated above. Thank you for your time &
response!


All times are GMT +1. The time now is 05:26 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com