gpt4 book ai didi

progress-4gl - 从正在进行的字符串中删除所有特殊字符 4GL

转载 作者:行者123 更新时间:2023-12-04 05:07:15 29 4
gpt4 key购买 nike

如何在 Progress 4GL 中删除字符串中的所有特殊字符?

最佳答案

我想这取决于您对特殊字符的定义。

您可以使用 REPLACE 删除任何字符。只需将 replace 的 to-string 部分设置为空白 ("")。

语法:

REPLACE ( source-string , from-string , to-string )

例子:

DEFINE VARIABLE cOldString AS CHARACTER   NO-UNDO.
DEFINE VARIABLE cNewString AS CHARACTER NO-UNDO.

cOldString = "ABC123AACCC".

cNewString = REPLACE(cOldString, "A", "").

DISPLAY cNewString FORMAT "x(10)".

您可以使用 REPLACE 删除完整的匹配字符串。例如:

REPLACE("This is a text with HTML entity &", "&", "").

可以通过多种方式处理“特殊字符”。如果您指的是特殊的“ASCII”字符,例如换行符、铃声等,您可以将 REPLACE 与 CHR 函数一起使用。

基本语法(您也可以添加一些有关代码页的信息,但这很少需要):

CHR( expression )

expression: An expression that yields an integer value that you want to convert to a character value. (ASCII numberic value).

因此,如果您想从文本中删除所有瑞典字母 Ö:s (ASCII 214),您可以这样做:

REPLACE("ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ", "Ö", "").

REPLACE("ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ", CHR(214), "").

将这些放在一起,您可以构建一个不需要的字符数组,然后删除字符串中的所有字符。例如:

FUNCTION cleanString RETURNS CHARACTER (INPUT pcString AS CHARACTER):
DEFINE VARIABLE iUnwanted AS INTEGER NO-UNDO EXTENT 3.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
/* Remove all capital Swedish letters ÅÄÖ */
iUnwanted[1] = 197.
iUnwanted[2] = 196.
iUnwanted[3] = 214.

DO i = 1 TO EXTENT(iUnwanted):

IF iUnwanted[i] <> 0 THEN DO:
pcString = REPLACE(pcString, CHR(iUnwanted[i]), "").
END.
END.

RETURN pcString.
END.

DEFINE VARIABLE cString AS CHARACTER NO-UNDO INIT "AANÅÅÖÖBBCVCÄÄ".

DISPLAY cleanString(cString) FORMAT "x(10)".

其他可能有用的函数:

  • SUBSTRING:返回字符串的一部分。也可以用来修改它。
  • ASC:与 CHR 类似,但相反 - 显示字符的 ASCII 值)。
  • INDEX:返回字符在字符串中的位置。
  • R-INDEX:类似于 INDEX 但从右到左搜索。
  • STRING:将任何数据类型的值转换为字符值。

关于progress-4gl - 从正在进行的字符串中删除所有特殊字符 4GL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24525858/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com