VB6Parse / Library / String / leftb

VB6 Library Reference

LeftB Function

Returns a Variant (String) containing a specified number of bytes from the left side of a string.

Syntax

LeftB(string, length)

Parameters

Return Value

Returns a Variant containing a String: - Contains the specified number of bytes from the left side of the string - Returns empty string if length is 0 - Returns entire string if length >= LenB(string) - Returns Null if string argument is Null - Returns Variant type (LeftB$ variant returns String type directly)

Remarks

The LeftB function extracts bytes from the beginning of a string:

Differences from Left Function

Typical Uses

  1. Binary Data: Extract bytes from binary strings
  2. Protocol Headers: Parse network protocol headers
  3. File Signatures: Identify file types by magic bytes
  4. DBCS Strings: Work with Japanese, Chinese, Korean text at byte level
  5. Fixed Byte Records: Parse fixed-width binary records
  6. Byte Validation: Check byte prefixes in data
  7. Binary Structures: Extract fields from binary structures
  8. Network Data: Process raw network packet data

Basic Usage Examples

' Example 1: Basic byte extraction
Dim data As String
data = Chr$(65) & Chr$(66) & Chr$(67)  ' "ABC"

Debug.Print LeftB(data, 2)            ' First 2 bytes
Debug.Print LeftB(data, 1)            ' First byte

' Example 2: File signature checking
Dim fileData As String
Open "test.exe" For Binary As #1
fileData = Input$(2, #1)
Close #1

If LeftB(fileData, 2) = "MZ" Then
Debug.Print "DOS/Windows executable"
End If

' Example 3: Protocol header extraction
Dim packet As String
packet = ReceiveNetworkData()

Dim header As String
header = LeftB(packet, 16)  ' 16-byte header

' Example 4: DBCS text handling
Dim japaneseText As String
japaneseText = LoadJapaneseText()  ' Load Japanese text

Dim firstBytes As String
firstBytes = LeftB(japaneseText, 4)  ' First 4 bytes (may be 2 DBCS chars)

Common Patterns

' Pattern 1: Extract binary header
Function GetBinaryHeader(data As String, headerSize As Long) As String
If LenB(data) < headerSize Then
GetBinaryHeader = data
Else
GetBinaryHeader = LeftB(data, headerSize)
End If
End Function

' Pattern 2: Validate magic bytes
Function ValidateMagicBytes(data As String, magic As String) As Boolean
ValidateMagicBytes = (LeftB(data, LenB(magic)) = magic)
End Function

' Pattern 3: Extract record ID
Function GetRecordID(record As String) As String
' First 8 bytes contain record ID
GetRecordID = LeftB(record, 8)
End Function

' Pattern 4: Parse network packet
Sub ParsePacket(packet As String)
Dim header As String
Dim payload As String

header = LeftB(packet, 20)  ' 20-byte header
payload = MidB(packet, 21)  ' Remaining bytes

' Process header and payload
End Sub

See Also

← Back to String | View all functions