Code: Select all
Procedure ConvertSpecialChars(*Input, len)
Protected *pa.Ascii,*pb.Ascii,*mem
Protected a
*mem = ?lookupTable:
*pa = *input
For a = 1 To len
*pb = *mem + *pa\a
*pa\a = *pb\a
*pa+1
Next
EndProcedure
DataSection : lookupTable:
Data.a $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,$20
Data.a $21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E
Data.a $3F,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C
Data.a $5D,$5E,$5F,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A
Data.a $7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$97,$98
Data.a $99,$9A,$9B,$9C,$9D,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF,$B0,$B1,$B2,$B3,$B4,$B5
Data.a $B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$BF,$41,$41,$41,$41,$C4,$41,$41,$43,$45,$45,$45,$45,$49,$49,$49,$49,$44,$4E,$4F,$4F
Data.a $4F,$4F,$D6,$D7,$4F,$55,$55,$55,$DC,$59,$DE,$DF,$61,$61,$61,$61,$E4,$61,$61,$63,$65,$65,$65,$65,$69,$69,$69,$69,$F0,$6E
Data.a $6F,$6F,$6F,$6F,$F6,$F7,$6F,$75,$75,$75,$FC,$79,$FE
EndDataSection
; Example:
Define strA.s = "ÄÂÐÉÈÖÜÚàâæçê"
Debug "Original: " + strA
ConvertSpecialChars(@strA,Len(strA))
Debug "Converted: " + strA