在 Power Builder 中尝试用 ~ 符号替换转义字符
In Power Builder trying to replace a escape character with ~ sign
我是 Power Builder 的新手,我正在尝试使用替换功能。我需要用 ~' 替换字符串中的 aposthope(') 但它给我一个错误 "Bad argument list for function: replace" .
Signature = "Gagandeep S'ingh"
Signature = Replace (Signature , "'", "~'")
这里有任何帮助。
来自 PowerBuilder 帮助:
替换 PowerScript 函数
将一个字符串的一部分替换为另一个字符串。
语法:替换 (string1, start, n, string2)
您需要指定要替换的字符数。如果你想插入 string2 到 string1 你使用 0.
所以对于你的例子,你应该尝试这样的事情:
IF POS(Signature, "'") > 0 THEN
Signature = Replace (Signature, POS(Signature, "'"), 1, "~'")
END IF
这是我当前的代码:
llSigCount = ldsSig.Retrieve(iuQstr.isPtID, iuQstr.ilPtVisitID, iuQstr.ilQstrID, AUTH_EVENT_TYPE)
IF llSigCount > 0 THEN
lsSignature = ldsSig.GetItemString(1, "cf_name_date")
IF POS(Signature, "'") > 0 THEN
Signature = Replace (Signature, POS(Signature, "'"), 1, "~'")
END IF
dw_edit.Modify("auth_signature_t.Text='" + lsSignature + "'")
END IF
波浪号是 PowerBuilder 中的修饰符。它的第一个功能是表示特殊字符,因此您有 ~r, ~n, ~t
表示回车符 return、换行符和制表符。
第二个函数是一个转义符,它删除了后面字符的任何特殊含义。这允许您编写 "~""
之类的内容来生成包含引号字符的字符串。在那种情况下,最好写 '"'
,但如果您已经这样做并且想要单引号,则必须将其转义。为 DataWindow 创建表达式需要额外的转义级别,我不会在这里讨论。当您编写 "~'"
时发生的事情是波浪号告诉 PowerBuilder 将单引号视为普通字符。在这种情况下它无论如何都会这样做,因为它不在单引号字符串中。这就是为什么您要将 ' 替换为另一个 '。如果你想要 ~' 你必须写 "~~'"
。第一个波浪号告诉 PowerBuilder 将后面的波浪号视为常规字符,您以 ~' 结尾。 PowerBuilder 帮助将 ~~
列为波浪号的特殊字符,将 ~'
和 ~"
列为引号字符,但是当您使用多于一级的转义时,最好将其视为逃跑并从左到右工作。
我是 Power Builder 的新手,我正在尝试使用替换功能。我需要用 ~' 替换字符串中的 aposthope(') 但它给我一个错误 "Bad argument list for function: replace" .
Signature = "Gagandeep S'ingh"
Signature = Replace (Signature , "'", "~'")
这里有任何帮助。
来自 PowerBuilder 帮助:
替换 PowerScript 函数
将一个字符串的一部分替换为另一个字符串。
语法:替换 (string1, start, n, string2)
您需要指定要替换的字符数。如果你想插入 string2 到 string1 你使用 0.
所以对于你的例子,你应该尝试这样的事情:
IF POS(Signature, "'") > 0 THEN
Signature = Replace (Signature, POS(Signature, "'"), 1, "~'")
END IF
这是我当前的代码:
llSigCount = ldsSig.Retrieve(iuQstr.isPtID, iuQstr.ilPtVisitID, iuQstr.ilQstrID, AUTH_EVENT_TYPE)
IF llSigCount > 0 THEN
lsSignature = ldsSig.GetItemString(1, "cf_name_date")
IF POS(Signature, "'") > 0 THEN
Signature = Replace (Signature, POS(Signature, "'"), 1, "~'")
END IF
dw_edit.Modify("auth_signature_t.Text='" + lsSignature + "'")
END IF
波浪号是 PowerBuilder 中的修饰符。它的第一个功能是表示特殊字符,因此您有 ~r, ~n, ~t
表示回车符 return、换行符和制表符。
第二个函数是一个转义符,它删除了后面字符的任何特殊含义。这允许您编写 "~""
之类的内容来生成包含引号字符的字符串。在那种情况下,最好写 '"'
,但如果您已经这样做并且想要单引号,则必须将其转义。为 DataWindow 创建表达式需要额外的转义级别,我不会在这里讨论。当您编写 "~'"
时发生的事情是波浪号告诉 PowerBuilder 将单引号视为普通字符。在这种情况下它无论如何都会这样做,因为它不在单引号字符串中。这就是为什么您要将 ' 替换为另一个 '。如果你想要 ~' 你必须写 "~~'"
。第一个波浪号告诉 PowerBuilder 将后面的波浪号视为常规字符,您以 ~' 结尾。 PowerBuilder 帮助将 ~~
列为波浪号的特殊字符,将 ~'
和 ~"
列为引号字符,但是当您使用多于一级的转义时,最好将其视为逃跑并从左到右工作。