You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCOBOL新手求助:创建含FILLER子句的显示行结构

解决OpenCOBOL中带FILLER的整齐显示行问题

你当前代码的问题是所有DISPLAY语句都指定了相同的行和列位置,导致内容互相覆盖,无法实现有序排列。下面提供两种实现整齐布局的方法,其中第一种会用到你需要的FILLER子句。

方法一:用FILLER定义结构化显示行

在DATA DIVISION中预先定义包含城市名、填充符、温度的行结构,通过给数据项赋值后整行显示,实现自动对齐:

IDENTIFICATION DIVISION.
PROGRAM-ID. CITY-TEMP-DISPLAY.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  CITY-TEMP-LINE.
    05  CITY-NAME        PIC X(10).  *> 预留10位存储城市名
    05  FILLER           PIC X(5) VALUE SPACES. *> 城市与温度之间的空格填充
    05  TEMP-VALUE       PIC 99.     *> 存储温度数值
    05  FILLER           PIC X(2) VALUE "C". *> 固定显示温度单位
01  WS-DUMMY             PIC X.

PROCEDURE DIVISION.
    * 显示标题
    DISPLAY "Here are the average temperatures for cities in the area" LINE 2 COLUMN 5.
    
    * 逐行赋值并显示
    MOVE "Montreal" TO CITY-NAME.
    MOVE 22 TO TEMP-VALUE.
    DISPLAY CITY-TEMP-LINE LINE 3 COLUMN 10.
    
    MOVE "Ottawa" TO CITY-NAME.
    MOVE 20 TO TEMP-VALUE.
    DISPLAY CITY-TEMP-LINE LINE 4 COLUMN 10.
    
    MOVE "Toronto" TO CITY-NAME.
    MOVE 24 TO TEMP-VALUE.
    DISPLAY CITY-TEMP-LINE LINE 5 COLUMN 10.
    
    MOVE "Kingston" TO CITY-NAME.
    MOVE 21 TO TEMP-VALUE.
    DISPLAY CITY-TEMP-LINE LINE 6 COLUMN 10.
    
    MOVE "Cornwall" TO CITY-NAME.
    MOVE 23 TO TEMP-VALUE.
    DISPLAY CITY-TEMP-LINE LINE 7 COLUMN 10.
    
    DISPLAY "Press any key to continue . . ." LINE 9 COLUMN 10.
    ACCEPT WS-DUMMY.
    STOP RUN.

方法二:直接控制每个内容的列位置

如果不想预先定义数据结构,也可以给每个城市和对应温度指定不同的列位置,手动实现对齐:

IDENTIFICATION DIVISION.
PROGRAM-ID. CITY-TEMP-DISPLAY.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-DUMMY             PIC X.

PROCEDURE DIVISION.
    DISPLAY "Here are the average temperatures for cities in the area" LINE 2 COLUMN 5.
    
    DISPLAY "Montreal" LINE 3 COLUMN 10.
    DISPLAY "22C" LINE 3 COLUMN 25.
    
    DISPLAY "Ottawa" LINE 4 COLUMN 10.
    DISPLAY "20C" LINE 4 COLUMN 25.
    
    DISPLAY "Toronto" LINE 5 COLUMN 10.
    DISPLAY "24C" LINE 5 COLUMN 25.
    
    DISPLAY "Kingston" LINE 6 COLUMN 10.
    DISPLAY "21C" LINE 6 COLUMN 25.
    
    DISPLAY "Cornwall" LINE 7 COLUMN 10.
    DISPLAY "23C" LINE 7 COLUMN 25.
    
    DISPLAY "Press any key to continue . . ." LINE 9 COLUMN 10.
    ACCEPT WS-DUMMY.
    STOP RUN.

关键说明

  • FILLER的作用是在数据项之间填充固定内容(这里是空格和温度单位),让整个行的结构固定,无需每次手动计算列偏移,保证所有行的对齐一致性。
  • 你原来的代码中,所有DISPLAY都用了相同的行和列位置,后续内容会覆盖前面的,这是导致布局混乱的核心原因。

内容的提问来源于stack exchange,提问作者nai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:10:46