devxlogo

StringToCode – Convert a string to the corresponding VB code

StringToCode – Convert a string to the corresponding VB code

' Put quotes around a string and double any embedded Chr$(34)'' convert all control characters into ControlChars.*** VB constants' or CHR() functions'' This function is useful, for example, when you are writing a MsgBox wizard. ' Tipically, such a wizard would let the user enter a string in a multiline ' textbox control, and would later have to convert it into a quoted string in ' order to produce the actual MsgBox code. Just putting quotes around the ' string doesn't work, because you have to account for embedded quotes and ' control characters. Function StringToCode(ByVal Source As String) As String    Dim Index As Integer    Dim result As New Text.StringBuilder()    Dim openQuotes As Boolean    Dim trailingAmpersand As Boolean    ' empty string is a special case    If Source Is Nothing OrElse Source.Length = 0 Then        Return """"""    End If    For Index = 0 To Source.Length - 1        Dim ch As Char = Source.Chars(Index)        If Not Char.IsControl(ch) Then            ' open the double quotes if necessary            If openQuotes = False Then                result.Append("""")                openQuotes = True            End If            ' append the character            result.Append(ch)            ' double embedded quotes            If ch = """" Then result.Append(ch)            trailingAmpersand = False        Else            ' it is a control character             ' close double quotes, if open            If openQuotes Then                result.Append(""" & ")                openQuotes = False            End If            Select Case Asc(ch)                Case 0                    result.Append("ControlChars.NullChar & ")                Case 13                    result.Append("ControlChars.Cr & ")                Case 10                    result.Append("ControlChars.Lf & ")                Case 9                    result.Append("ControlChars.Tab & ")                Case Else                    result.Append("Chr(")                    result.Append(Asc(ch).ToString)                    result.Append(") & ")            End Select            trailingAmpersand = True        End If    Next    ' close open quotes    If openQuotes Then        result.Append("""")    ElseIf trailingAmpersand Then        result.Remove(result.Length - 3, 3)    End If    ' convert CR+LF to a single symbolic constant and return the result    Return result.ToString.Replace("ControlChars.Cr & ControlChars.Lf", _        "ControlChars.CrLf")End Function

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist