COBOL替代BASIC的MID以及如何连接字符串?

fri*_*iwi 2 string cobol string-concatenation netcobol

我正在寻找Visual Basic的MID功能的COBOL替代品.我需要做的是从前8个字母中取出8个字符串并将它们连接起来.

我正在使用富士通COBOL.

非常感谢,

伊凡

Nea*_*alB 5

Paxdiablo提供了几种有效的方法.另一种方法是除了STRING动词之外还使用引用修改.完整的程序示例如下:

   IDENTIFICATION DIVISION.                                      
   PROGRAM-ID. EXAMPLE9.                                         
   DATA DIVISION.                                                
   WORKING-STORAGE SECTION.                                      
   01  STRINGS.                                                  
       05 STRING1    PIC X(10) VALUE 'AAAAAAAAAA'.               
       05 STRING2    PIC X(10) VALUE 'BBBBBBBBBB'.               
       05 STRING3    PIC X(10) VALUE 'CCCCCCCCCC'.               
       05 STRING4    PIC X(10) VALUE 'DDDDDDDDDD'.               
       05 STRING5    PIC X(10) VALUE 'EEEEEEEEEE'.               
       05 STRING6    PIC X(10) VALUE 'FFFFFFFFFF'.               
       05 STRING7    PIC X(10) VALUE 'GGGGGGGGGG'.               
       05 STRING8    PIC X(10) VALUE 'HHHHHHHHHH'.               
       05 STRING-OUT PIC X(40) VALUE SPACES.                     
   PROCEDURE DIVISION.

       STRING STRING1(1:5) STRING2(1:5) STRING3(1:5) STRING4(1:5)
              STRING5(1:5) STRING6(1:5) STRING7(1:5) STRING8(1:5) 
              DELIMITED BY SIZE                                   
         INTO STRING-OUT

       DISPLAY STRING-OUT                                         
       GOBACK.                                                    
Run Code Online (Sandbox Code Playgroud)

这大大减少了冗长,并在单个语句中捕获了连接.最好的建议是阅读STRING动词.它有许多创新方法可供使用.

COBOL不提供与BASIC MID语句完全相似的模拟.您可以通过使用一些组合实现类似的操作STRING,UNSTRING,INSPECT和参考修改.参考修改的示例是:SOME-VARIABLE-NAME(1:5)- 1:5位指定SOME-VARIABLE-NAME以第一个字符开头的子字符串,长度为5个字符.修饰符本身可以是数字变量.在STRINGUNSTRING动词提供了许多功能,可以说是相当强大的.

但总的来说,COBOL并不是特别擅长字符串操作(有些人可能会说它不是特别擅长任何东西 - 但我不同意这种说法).