我有一个明天需要上班的作业,我似乎无法将这一部分弄清楚.看到我被给了一个带有一堆名字的输入文件,其中一些我需要跳过,每个都有额外的信息.我正在尝试使用AND和OR来跳过我不需要的名字,我想出了这个.
IF DL-CLASS-STANDING = 'First Yr' OR 'Second Yr' AND
GRAD-STAT-IN = ' ' OR 'X'
Run Code Online (Sandbox Code Playgroud)
它除了一个人之外什么都没有,但当我试图添加另一组AND和OR时,程序开始表现得像那些甚至没有的规定.
我是否为编译器过于复杂?是否有更简单的方法来跳过事物?
输入文件的记录为:8712351,8712353,8712353,8712354,8712356,8712352,8712355 8712352,8712355
使用COBOL我需要从上面的文件中删除重复项并写入输出文件.我编写了简单的逻辑来读取记录并写入输出文件.
我在哪里需要从上面的文件中删除重复项(例如,8712353,8712352)的逻辑.这是程序逻辑:
IDENTIFICATION DIVISION.
PROGRAM-ID.RemoveDup.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUTFILEDUP ASSIGN TO 'C:\Cobol\INPUTFILEDUP.txt'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUTFILEDUP ASSIGN TO 'C:\Cobol\OUTFILEDUP.txt'
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD INPUTFILEDUP.
01 INPUTFILEDUPREC.
88 EOFINPUTFILEDUP VALUE HIGH-VALUES.
02 INPUTFILEID PIC 9(07).
FD OUTFILEDUP.
01 OUTFILEDUPREC PIC 9(07).
WORKING-STORAGE SECTION.
77 WS-VARIABLE PIC 9(09).
77 REC-NOT-MATCH PIC 9(01).
77 CUR-VARIABLE PIC 9(09).
PROCEDURE DIVISION.
BEGIN.
OPEN INPUT INPUTFILEDUP
OPEN OUTPUT OUTFILEDUP
READ INPUTFILEDUP
AT …Run Code Online (Sandbox Code Playgroud) 即使我们有类似的语言C++, Java, Python,为什么COBOL仍然是商业世界的首选语言?
编辑:
它为何如此受欢迎?
很抱歉没有为此问题创建单独的帖子.
有没有人遇到过在COBOL应用程序中实现测试驱动开发(以及可能的行为驱动开发)的任何可行方法?
理想的解决方案将支持事务(CICS)和批处理模式cobol的单元和集成测试,它们位于DB2数据库和各种固定宽度数据集的通常组合之上.
我见过http://sites.google.com/site/cobolunit/,看起来很有趣.有没有人看到过这种愤怒的工作?它有用吗?有什么问题?
只是为了让您的创意成果流动起来,对理想方法有一些"要求":
欢迎评论上述要求的有效性/适当性.
只是提醒一下,我在这里寻找的是关于实现这些事情的最佳方式的良好实用建议 - 我不一定期望预先打包的解决方案.我很高兴看到有人在cobol中成功使用TDD的例子,以及一些有效和无效的指导和问题.
为什么COBOL兼具SECTION和PARAGRAPH?
谁能解释为什么COBOL的设计师创造了SECTIONs和PARAGRAPHs?自从COBOL最初发布以来,这些已经存在,所以我怀疑它们存在的真正原因早已消失(类似于NEXT SENTENCE仍然在语言规范中以实现向后兼容性但从引入显式范围终止符后不再需要的事物).
我的猜测SECTION可能是为了支持程序覆盖而引入的.SECTION有一个与之关联的可选PRIORITY编号,用于标识它所属的程序覆盖.但是,大多数COBOL的现代实现忽略或丢弃了PRIORITY数字(和覆盖).
目前,我看到部分SECTION仍然需要s ,但是没有理由这样做.我看不出有什么语义差别之间,并比其他隶属于.DECLARATIVEPROCEDURE DIVISIONSECTIONPARAGRAPHPARAGRAPHSECTION
有些COBOL商店禁止使用的SECTION支持PARAGRAPH(在北美似乎普遍).其他人禁止PARAGRAPH赞成SECTION(在欧洲似乎很常见).还有一些人有关于何时适当的指导方针.所有这一切对我来说都是非常武断的 - 这就引出了一个问题:为什么他们首先会被纳入语言规范?而且,它们今天有任何相关性吗?
如果你回答这个问题,如果你也可以指出一个支持你的答案的参考文件,那将会很棒.
谢谢
我在数据文件定义文档中遇到过这些术语,这些术语是我从大型机系统获得的一些数据.
我没有在任何词汇表或谷歌搜索中找到这些术语的定义 - 只是提到它们.
任何人都可以对这些术语的确切含义有所了解吗?
有没有办法在Java程序中读取cobol数据?更具体地说,我面临以下情况:
我有一个具有固定长度数据记录的文件.数据定义以Cobol副本完成.我想到的是一个考虑到拷贝书的图书馆能够阅读这些记录.
理想情况下,应该可以基于副本信息生成基本的Java类和结构.在稍后的步骤中,将解析数据线并将数据填充到那些生成的类的对象中.
你知道提供这种功能的图书馆吗?或者任何其他技术来应对读取cobol数据的问题?
有一些商业工具提供此功能.然而,它们非常昂贵.您是否知道任何开源替代方案或不同工具的组合来提供整个功能?例如,cb2xml读取copybook结构并将它们转换为xml.稍后的步骤是基于cb2xml xml信息生成记录阅读器.或者使用可配置的记录阅读器.你知道cobol记录阅读器(解码器)吗?
请问,COBOL中关键字REDEFINES的用法是什么?我无法理解手册的定义.
以下代码是什么意思?
01 WS_CHARGE_TXT_8X PIC X(08) VALUE "10000000".
01 WS_CHARGE_NUM_8 REDEFINES WS_CHARGE_TXT_8X.
05 WS_CHARGE_8 PIC 9(05)V9(03).
Run Code Online (Sandbox Code Playgroud)
谢谢!