' 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
![Outage Reddit](https://www.devx.com/wp-content/uploads/Outage-Reddit-300x171.jpg)