Link to home
Start Free TrialLog in
Avatar of peet
peet

asked on

Convert String <--> Byte Array ?

How do you convert a Byte Array to a String ?
( Without moving big chunks of data )
I have :
Dim anArray(4096) As Byte
Dim StringData As String

I use the Win API
ReadFile(h, anArray(0),BytesToRead, BytesRead, 0) to read the data. I then want to transmit the data with the WinSock
control:

   StringData <-- anArray  ????????????????

   tcpServer.SendData StringData
 
Your help would be appreciated.
Peet
     
Avatar of swilt
swilt

First of all Dim anArray(4096) As Byte declares a 4097 byte array starting at 0
A byte in VB is like a small integer rather than a char
There may be a way of doing this, but it would be using the Win API
4097 bytes is a small chunk of data

    Dim anArray(4) As Byte ' 5 byte array (0 to 4)
    Dim StringData As String
    Dim i As Integer

    anArray(0) = Asc("H")
    anArray(1) = Asc("e")
    anArray(2) = Asc("l")
    anArray(3) = Asc("l")
    anArray(4) = Asc("o")
   
    'StringData = CStr(anArray()) 'This will not work
   
    For i = LBound(anArray) To UBound(anArray)
        StringData = StringData & Chr$(anArray(i))
    Next i
   
    MsgBox StringData

ASKER CERTIFIED SOLUTION
Avatar of karmi
karmi
Flag of Palestine, State of image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
MyString = ""
FOR ndx = 0 to 4095
    MyString = MyString & CHR( anArray( ndx ) )
NEXT ndx


Avatar of peet

ASKER

karmi,

Thanks a lot for the help

peet