Code: Alles auswählen
Procedure.s EscapeString(string.s)
  Protected term.c = 0, ende.l = 0
  Protected *c.Character = @string
  While *c\c ! 0
    If *c\c = '\'
      *c\c = term
    EndIf
    *c + SizeOf(Character)
  Wend
  ende = *c
  *c   = @string
  While *c ! ende
    If *c\c = term
      *c + SizeOf(Character)
      Select *c\c
        Case term : *c\c = '\'
        Case 'a'  : *c\c =  7 ; bel
        Case 'b'  : *c\c =  8 ; backspace
        Case 't'  : *c\c =  9 ; Tab
        Case 'l'  : *c\c = 10 ; linefeed
        Case 'f'  : *c\c = 12 ; formfeed
        Case 'r'  : *c\c = 13 ; return
        Case 'n'              ; carriage return
          *c - SizeOf(Character)
          *c\c = 13
          *c + SizeOf(Character)
          *c\c = 10
        Case 'q'  : *c\c = 34 ; dquote
      EndSelect
    EndIf
    *c + SizeOf(Character)
  Wend
  *c = @string
  While *c ! ende
    If *c\c = 0
      CopyMemory(*c + SizeOf(Character), *c, ende - *c)
    EndIf
    *c + SizeOf(Character)
  Wend
  ProcedureReturn string
EndProcedure
Macro esc(string) ; user defined
  EscapeString(string)
EndMacro
MessageRequester("", esc("*\tHello\t\t*\n*\tThere!\t\t*"))
MessageRequester("", esc("C:\\Program Files\\PureBasic\\"))
MessageRequester("", esc("\qTest in Dquote\q"))
MessageRequester("", esc( "\\no problems ?"))
