如何检查';3个单词';在长度为10的输入cobol变量中,如果找到跳过记录?

如何检查';3个单词';在长度为10的输入cobol变量中,如果找到跳过记录?,cobol,mainframe,Cobol,Mainframe,输入:WS变量包含“345xABCx12” 代码:如果WS变量字符串包含“ABC”,则显示“跳过!!!”否则就做点什么 If variable contains 'abc' display skipped else process-para end if. 你试过像这样的东西吗 If variable equal to 'abc' display "skipped" else perform process-para end-if 这将假定变量定义为PIC XXX或X(3)

输入:WS变量包含“345xABCx12”

代码:如果WS变量字符串包含“ABC”,则显示“跳过!!!”否则就做点什么

If variable contains 'abc'
  display skipped
else
  process-para
end if.

你试过像这样的东西吗

If variable equal to 'abc'
  display "skipped"
else
  perform process-para
end-if
这将假定变量定义为PIC XXX或X(3)

如果不适合,请更新您的问题,提供更完整的描述、一些示例输入、预期输出和您尝试过的内容

现在发现您正在一段数据中的可变位置查找“abc”

有几种方法可以做到这一点

最简单的是

INSPECT field-you-want-to-look-at 
  TALLYING a-count 
  FOR ALL value-you-want-to-search-for
a计数可以定义为二进制PIC 9(4)。要搜索的值为PIC XXX值“abc”

检查前,将零移至a计数

检查后,您可以测试a计数,它将告诉您要搜索的值在要查看的字段中出现了多少次

使用数据定义(PIC XXX)而不是文字(“abc”)的原因是为了便于维护和理解。程序中可能有不止一个地方需要“abc”,这两个地方的“abc”可能指的是同一件事,或者一个地方指的是一件事,另一个地方指的是另一件事。通过定义中的数据名称,您可以描述“abc”在每个实例中的含义。如果“abc”(或其中一个“abc”)的值需要更改,则只需更改一个位置-在工作存储器中

如果(假设由于COOLGEN引用,大型机上的Enterprise COBOL)使用编译器选项OPT(STD)或OPT(FULL),则引用的数据名(即具有常量值)将被视为常量,但它从来不是任何内容的“目标”。所以你也得到了一个命名常数

INSPECT FLIGHTPLAN-REFERENCE 
  TALLYING NO-OF-ENTRIES-TO-EU-AIRSPACE
  FOR ALL EU-FLIGHTPLAN-CODE
它比其他语言更容易理解

INSPECT VAR1 TALLYING A-COUNT FOR ALL 'abc'
你在找动词。。。试试像

   IDENTIFICATION DIVISION.
   PROGRAM-ID. EXAMPLE.
   DATA DIVISION.
   WORKING-STORAGE SECTION.
   01  TESTDATA  PIC X(50).
   01  COUNTER   PIC 9(4).
   PROCEDURE DIVISION.
       MOVE '12345XXABCXX12345' TO TESTDATA
       MOVE ZERO TO COUNTER
       INSPECT TESTDATA TALLYING COUNTER FOR ALL 'ABC'
       IF COUNTER > 0
          DISPLAY 'SKIP! ' TESTDATA
       ELSE
          DISPLAY 'DONT SKIP ' TESTDATA
       END-IF
       MOVE '12345XXZZZXX12345' TO TESTDATA
       MOVE ZERO TO COUNTER
       INSPECT TESTDATA TALLYING COUNTER FOR ALL 'ABC'
       IF COUNTER > 0
          DISPLAY 'SKIP! ' TESTDATA
       ELSE
          DISPLAY 'DONT SKIP ' TESTDATA
       END-IF
       GOBACK
       .

没有账单。。实际上包含“abc”的变量EX输入是:“123xyz123abc111”现在这个包含abc变量=“abc”不会有帮助。。这本书很好用,请仍然编辑你的原始问题。我已经标记了副本供版主注意。嗨,比利。。。为什么我们需要定义PIC XXX值“abc”。??这就像检查所有“ABC”的WS-CONTACT Talling TALLY-CNT……为什么我们需要创建一个变量来存储“ABC”?删除了第二个变量QUESTION@AgentMahone你是新来的,所以可能不知道投票和接受。进行一点搜索,这是我们获得超出您评论范围的评估的方式。