VB6Parse / Library / String / rightb

VB6 Library Reference

RightB Function

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

Syntax

RightB(string, length)

Parameters

Return Value

Returns a Variant containing a String: - Contains the specified number of bytes from the right 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 (RightB$ variant returns String type directly)

Remarks

The RightB function extracts bytes from the end of a string:

Differences from Right Function

Typical Uses

  1. Binary Data: Extract trailing bytes from binary strings
  2. Checksums: Extract checksum bytes from data
  3. File Trailers: Extract trailing data from files
  4. DBCS Strings: Work with Japanese, Chinese, Korean text at byte level
  5. Fixed Byte Records: Parse trailing fields from binary records
  6. Byte Validation: Check byte suffixes in data
  7. Binary Structures: Extract trailing fields from binary structures
  8. Network Data: Process packet trailers

Basic Usage Examples

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

Debug.Print RightB(data, 2)            ' Last 2 bytes
Debug.Print RightB(data, 1)            ' Last byte

' Example 2: Checksum extraction
Dim packet As String
packet = ReceiveNetworkData()

Dim checksum As String
checksum = RightB(packet, 4)  ' 4-byte checksum at end

' Example 3: File trailer
Dim fileData As String
Open "data.bin" For Binary As #1
fileData = Input$(LOF(1), #1)
Close #1

Dim trailer As String
trailer = RightB(fileData, 16)  ' 16-byte trailer

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

Dim lastBytes As String
lastBytes = RightB(japaneseText, 4)  ' Last 4 bytes (may be 2 DBCS chars)

Common Patterns

' Pattern 1: Extract checksum
Function GetChecksum(data As String) As String
If LenB(data) < 4 Then
GetChecksum = ""
Else
GetChecksum = RightB(data, 4)
End If
End Function

' Pattern 2: Validate trailer
Function ValidateTrailer(data As String, trailer As String) As Boolean
ValidateTrailer = (RightB(data, LenB(trailer)) = trailer)
End Function

' Pattern 3: Extract record suffix
Function GetRecordSuffix(record As String) As String
' Last 8 bytes contain record suffix
GetRecordSuffix = RightB(record, 8)
End Function

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

trailer = RightB(packet, 8)  ' 8-byte trailer
payload = LeftB(packet, LenB(packet) - 8)  ' All but trailer

' Process payload and trailer
End Sub

' Pattern 5: Extract file extension bytes
Function GetExtensionBytes(fileName As String) As String
' Assumes extension is last 3 bytes after dot
GetExtensionBytes = RightB(fileName, 3)
End Function

Advanced Examples

' Example: CRC validation
Function ValidateCRC(data As String) As Boolean
Dim crc As String
Dim payload As String

If LenB(data) < 4 Then
ValidateCRC = False
Exit Function
End If

crc = RightB(data, 4)
payload = LeftB(data, LenB(data) - 4)

ValidateCRC = (CalculateCRC(payload) = crc)
End Function

' Example: Extract GUID data
Sub ExtractGUID(guidData As String)
Dim data4 As String
data4 = RightB(guidData, 8)  ' Last 8 bytes of GUID
Debug.Print "Data4: " & BytesToHex(data4)
End Sub

' Example: Binary record trailer
Function GetRecordTrailer(record As String) As String
' Records have 12-byte trailer
Const TRAILER_SIZE As Long = 12

If LenB(record) >= TRAILER_SIZE Then
GetRecordTrailer = RightB(record, TRAILER_SIZE)
Else
GetRecordTrailer = record
End If
End Function

See Also

← Back to String | View all functions