VB6Parse / Library / String / rtrim_dollar

VB6 Library Reference

RTrim$ Function

The RTrim$ function in Visual Basic 6 returns a string with trailing (right-side) spaces removed. The dollar sign ($) suffix indicates that this function always returns a String type, never a Variant.

Syntax

RTrim$(string)

Parameters

Return Value

Returns a String with all trailing space characters (ASCII 32) removed from string.

Behavior and Characteristics

Space Removal

Type Differences: RTrim$ vs RTrim

Common Usage Patterns

1. Clean User Input

Function CleanInput(userInput As String) As String
    CleanInput = RTrim$(userInput)
End Function
Dim cleaned As String
cleaned = CleanInput("  Hello World  ")  ' Returns "  Hello World"

2. Format Output for Display

Sub DisplayData()
    Dim dataField As String
    dataField = "Value    "
    Debug.Print "|" & RTrim$(dataField) & "|"  ' Prints "|Value|"
End Sub

3. Database Field Processing

Function GetFieldValue(rs As Recordset, fieldName As String) As String
    ' Remove trailing spaces from fixed-width database fields
    GetFieldValue = RTrim$(rs.Fields(fieldName).Value & "")
End Function

4. Fixed-Width Data Parsing

Function ParseFixedField(dataLine As String, startPos As Integer, fieldWidth As Integer) As String
    Dim rawField As String
    rawField = Mid$(dataLine, startPos, fieldWidth)
    ParseFixedField = RTrim$(rawField)
End Function
Dim name As String
name = ParseFixedField("John      Doe       ", 1, 10)  ' Returns "John"

5. Clean File Content

Function ReadCleanLine(fileNum As Integer) As String
    Dim rawLine As String
    Line Input #fileNum, rawLine
    ReadCleanLine = RTrim$(rawLine)
End Function

6. String Comparison Preparation

Function CompareValues(value1 As String, value2 As String) As Boolean
    ' Remove trailing spaces for accurate comparison
    CompareValues = (RTrim$(value1) = RTrim$(value2))
End Function

7. Configuration Value Processing

Function GetConfigValue(key As String) As String
    Dim rawValue As String
    rawValue = GetINIString("Settings", key, "")
    GetConfigValue = RTrim$(rawValue)
End Function

8. Array Element Cleanup

Sub CleanStringArray(arr() As String)
    Dim i As Integer
    For i = LBound(arr) To UBound(arr)
        arr(i) = RTrim$(arr(i))
    Next i
End Sub

9. Report Generation

Function FormatReportLine(label As String, value As String) As String
    Dim paddedLabel As String
    paddedLabel = label & Space(30)
    FormatReportLine = Left$(RTrim$(paddedLabel), 30) & value
End Function

10. Logging and Debug Output

Sub LogMessage(message As String)
    Dim timestamp As String
    Dim cleanMsg As String
    timestamp = Format$(Now, "yyyy-mm-dd hh:nn:ss")
    cleanMsg = RTrim$(message)
    Debug.Print timestamp & " - " & cleanMsg
End Sub

Best Practices

When to Use RTrim$ vs RTrim

' Use RTrim$ when you need a String
Dim cleaned As String
cleaned = RTrim$(userInput)  ' Type-safe, always returns String
' use RTrim when working with Variants or Null values
Dim result As Variant
result = RTrim(variantValue)  ' Can propagate Null

Combine with LTrim$ for Full Cleanup

' Remove both leading and trailing spaces
Dim fullyClean As String
fullyClean = LTrim$(RTrim$(input))
' Or use Trim$ for convenience
fullyClean = Trim$(input)

Use for Fixed-Width Fields

' Clean up fixed-width database or file fields
Dim firstName As String
firstName = RTrim$(rs!FirstName)  ' Remove padding spaces

Validate Before Processing

Function SafeRTrim(value As Variant) As String
    If IsNull(value) Then
        SafeRTrim = ""
    Else
        SafeRTrim = RTrim$(CStr(value))
    End If
End Function

Performance Considerations

' Efficient: single RTrim$ call
Dim cleaned As String
cleaned = RTrim$(input)
' Less efficient: manual space removal
Dim i As Integer
For i = Len(input) To 1 Step -1
    If Mid$(input, i, 1) <> " " Then Exit For
Next i
cleaned = Left$(input, i)

Common Pitfalls

1. Only Removes Spaces (ASCII 32)

Dim text As String
text = "Hello" & vbTab  ' Ends with tab character
' RTrim$ does NOT remove tabs
Debug.Print RTrim$(text)  ' Still has the tab at the end
' To remove all whitespace, you need custom logic
Function RemoveTrailingWhitespace(s As String) As String
    Dim i As Integer
    For i = Len(s) To 1 Step -1
        Select Case Mid$(s, i, 1)
            Case " ", vbTab, vbCr, vbLf
                ' Continue
            Case Else
                Exit For
        End Select
    Next i
    RemoveTrailingWhitespace = Left$(s, i)
End Function

2. Null Value Handling

' RTrim$ with Null causes runtime error
Dim result As String
result = RTrim$(nullValue)  ' ERROR if nullValue is Null
' Protect against Null
If Not IsNull(value) Then
    result = RTrim$(value)
Else
    result = ""
End If

3. Confusing with Trim$

Dim text As String
text = "  Hello  "
Debug.Print RTrim$(text)   ' "  Hello" (leading spaces remain)
Debug.Print LTrim$(text)   ' "Hello  " (trailing spaces remain)
Debug.Print Trim$(text)    ' "Hello" (both removed)

4. Database Field Assumptions

' Wrong: assuming all database fields need RTrim
value = RTrim$(rs!TextField)  ' May error if field is Null
' Better: handle Null and empty values
If IsNull(rs!TextField) Then
    value = ""
Else
    value = RTrim$(rs!TextField & "")
End If

5. Not Checking for Empty Results

Dim input As String
input = "     "  ' Only spaces
Dim result As String
result = RTrim$(input)  ' Returns "" (empty string)
' Check if result is meaningful
If Len(RTrim$(input)) > 0 Then
    ' Process non-empty string
End If

Limitations

← Back to String | View all functions