COBOL代码用html实体替换字符 [英] COBOL code to replace characters by html entities

查看:196
本文介绍了COBOL代码用html实体替换字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用& lt; & gt; 与COBOL。我想知道INSPECT语句,但是看起来这个语句可以用来将一个字符转换成另一个字符。我的意图是用他们的html实体替换所有的html字符。



任何人都可以找出一些方法来做到这一点吗?也许循环遍历字符串并测试每个字符是唯一的方法?



欢迎使用GnuCOBOL或IBM COBOL示例。



我最好的代码是这样的:( http://ideone.com/MKiAc6

  IDENTIFICATION DIVISION。 
PROGRAM-ID。 HTMLSECURE。

环境部门。

DATA DIVISION。
工作储存部分。
77 INPTXT PIC X(50)。
77 OUTTXT PIC X(500)。
77 I PIC 9(4)COMP价值1.
77 P PIC 9(4)COMP价值1.

程序部门。
MOVE 1 TO P
MOVE'< SCRIPT> TEST TEST< / SCRIPT>'输入

由1变为1
直到我等于输入长度

评估输入(I:1)
WHEN'<'
MOVE& lt; TO OUTTXT(P:4)
加4到P
当'>'
MOVE& gt; TO OUTTXT(P:4)
添加4至P
当其他
移动INPTXT(I:1)至OUTTXT(P:1)时
加1至P
END-EVALUATE
END-PERFORM

DISPLAY OUTTXT

STOP RUN


解决方案

COBOL是固定长度字段的语言。所以不行, INSPECT 不能做你想做的事。



如果你需要这个IBM大型机,您的SORT产品(假设足够最新)可以使用 FINDREP

你看看Enterprise COBOL中XML处理的可能性,你会发现他们正是你想要的(我猜)。 GnuCOBOL也可以很容易地与其他许多东西进行交互。如果您正在编写GnuCOBOL以在非大型机上运行,​​那么我建议您在SourceForge的GnuCOBOL部分上提问。



否则,它会归结为循环数据。一旦你澄清了你想要的更多,你可能会得到一些例子,如果你仍然需要它们的话。


I want to replace the characters '<' and '>' by &lt; and &gt; with COBOL. I was wondering about INSPECT statement, but it looks like this statement just can be used to translate one char by another. My intention is to replace all html characters by their html entities.

Can anyone figure out some way to do it? Maybe looping over the string and testing each char is the only way?

GnuCOBOL or IBM COBOL examples are welcome.

My best code is something like it: (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 "&lt;" TO OUTTXT(P:4)
                ADD 4 TO P
            WHEN '>'
                MOVE "&gt;" 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
    .

解决方案

COBOL is a language of fixed-length fields. So no, INSPECT is not going to be able to do what you want.

If you need this for an IBM Mainframe, your SORT product (assuming sufficiently up-to-date) can do this using FINDREP.

If you look at the XML processing possibilities in Enterprise COBOL, you will see that they do exactly what you want (I'd guess). GnuCOBOL can also readily interface with lots of other things. If you are writing GnuCOBOL for running on a non-Mainframe, I'd suggest you ask on the GnuCOBOL part of SourceForge.

Otherwise, yes, it would come down to looping through the data. Once you clarify what you want a bit more, you may get examples of that if you still need them.

这篇关于COBOL代码用html实体替换字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆