2013-12-03 2 views

ответ

2

Чтобы заменить символы, которые Вы можете использовать ЗАМЕНИТЬ функция

REPLACE function 
Returns a string with specified substring replacements. 
Syntax 
REPLACE (source-string , from-string , to-string) 

Пример:

DEFINE VARIABLE cTxt AS CHARACTER NO-UNDO FORMAT "x(20)". 
DEFINE VARIABLE cNewTxt AS CHARACTER NO-UNDO FORMAT "x(20)". 

cTxt = "abc123abc123abc123". 

cNewTxt = REPLACE(cTxt, "a", "-"). 

DISPLAY cNewTxt . 

Вы могли предназначаться новые линии с использованием кода управления ~ п

REPLACE(cString, "~n", "replacing character"). 

Или цель индивидуальный% 0d (десятичный код ascii 13) и% 0a (десятичный код ascii 10).

REPLACE(cString, CHR(13), "replacing character"). 
REPLACE(cString, CHR(10), "replacing character"). 
0

Мне недавно нужно было сделать что-то подобное и нашло следующее достаточно удобным. Это может быть немного резким - он удаляет все управляющие коды и что-то большее, чем ascii 126. Но вы можете легко настроить эти ограничения. (Мое использование заключается в заполнении текстовых полей - так что все эти материалы являются для меня незаконными.)

define variable hd as character no-undo initial "ABCDEF". 

function hex2char returns character (h as character): 

    define variable i as integer no-undo. 

    if length(h) <> 2 or index(hd, substring(h, 1, 1)) < 0 or index(hd, substring(h, 2, 1)) < 0 then 
    return "". 

    i = (((index(hd, substring(h, 1, 1)) - 1) * 16) + 
      index(hd, substring(h, 2, 1)) - 1 
    ). 

    if i < 32 or i >= 127 then 
    return "". 
    else 
    return chr(i). 

end. 

function url-decode returns character (input url as character): 

    define variable xurl as character no-undo. 
    define variable zurl as character no-undo. 

    define variable pct as integer no-undo. 

    /* fix known trouble makers 
    */ 

    assign 
    xurl = replace(url, "+", " ") 
    xurl = replace(xurl, "%0A%0D", "~n")  /* <LF><CR>  */ 
    xurl = replace(xurl, "%0D%0A", "~n")  /* <CR><LF>  */ 
    xurl = replace(xurl, "%0D", "~n")  /* <CR>   */ 
    . 

    pct = index(xurl, "%"). 

    do while pct > 0 and xurl > "": 
    assign 
     zurl = zurl + substring(xurl, 1, pct - 1) + hex2char(substring(xurl, pct + 1, 2)) 
     xurl = substring(xurl, pct + 3) 
     pct = index(xurl, "%") 
    . 
    end. 

    return zurl + xurl. 

end. 

display url-decode(sampleUrl) view-as editor size 60 by 25.