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 ?"))