【发布时间】:2014-09-28 21:06:25
【问题描述】:
我想用 COBOL 将字符 '' 替换为 < 和 >。我想知道 INSPECT 语句,但看起来这个语句只能用来翻译一个字符。我的意图是用它们的 html 实体替换所有 html 字符。
有人能想出办法吗?也许循环遍历字符串并测试每个字符是唯一的方法?
欢迎使用 GnuCOBOL 或 IBM COBOL 示例。
我最好的代码是这样的:(http://ideone.com/MKiAc6)
IDENTIFICATION DIVISION.
PROGRAM-ID. HTMLSECURE.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 INPTXT PIC X(50).
77 OUTTXT PIC X(500).
77 I PIC 9(4) COMP VALUE 1.
77 P PIC 9(4) COMP VALUE 1.
PROCEDURE DIVISION.
MOVE 1 TO P
MOVE '<SCRIPT> TEST TEST </SCRIPT>' TO INPTXT
PERFORM VARYING I FROM 1 BY 1
UNTIL I EQUAL LENGTH OF INPTXT
EVALUATE INPTXT(I:1)
WHEN '<'
MOVE "<" TO OUTTXT(P:4)
ADD 4 TO P
WHEN '>'
MOVE ">" TO OUTTXT(P:4)
ADD 4 TO P
WHEN OTHER
MOVE INPTXT(I:1) TO OUTTXT(P:1)
ADD 1 TO P
END-EVALUATE
END-PERFORM
DISPLAY OUTTXT
STOP RUN
.
【问题讨论】:
-
我认为你需要澄清你想要做什么。目前,您似乎不想做任何事情(将 > 更改为 > 并将
-
我通过在编辑中查看如何显示您想要的内容来解决问题,我在 < 周围添加了反引号。并共同阻止它们被逐字处理。现在可以看到你在追求什么。
-
您接受了建议的各种解决方案中的哪一部分? :-)
-
好的,目前还不清楚您要使用什么。问题和答案的部分重点是帮助将来搜索类似问题。发现此内容的人不会确切知道对您有什么帮助。
-
是的,你完全正确。