I need to write a lot of Long values to a file fast.
If I use Write, a Long value will use 8 characters in the
file. I have prepared a module to convert a Long value
to a 3 character string for writing to a file (and convert it back again).
Is this ok? It works fine but is there a better, less messy way?
Also I don't want to use binary mode as it is painfully slow.
Code:Public Function ThreeByteStringFromLong(lngNumber As Long) As String
ThreeByteStringFromLong = Chr(R(lngNumber)) + Chr(G(lngNumber)) + Chr(B(lngNumber))
End Function
Public Function LongFromThreeByteString(str3Byte As String) As Long
Dim strA As String
Dim strB As String
Dim strC As String
strA = Left(str3Byte, 1)
strB = Mid(str3Byte, 2, 1)
strC = Right(str3Byte, 1)
LongFromThreeByteString = RGB(Val(strA), Val(strB), Val(strC))
End Function
Private Function R(lColor As Long) As Byte
R = lColor And &HFF&
End Function
Private Function G(lColor As Long) As Byte
G = Int(lColor / &H100&) And &HFF&
End Function
Private Function B(lColor As Long) As Byte
B = Int(lColor / &H10000) And &HFF&
End Function
