日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

改造Cobol项目应该注意的几个问题

發布時間:2024/8/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 改造Cobol项目应该注意的几个问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在做一個改造項目,把一個很古老的Cobol項目改造為PL/SQL項目。

在最開始的Cobol代碼解析的時候,由于對Cobol語言特點的不熟悉,造成了到測試階段的一些麻煩。

下面就關于Cobol里面字符型,數值型的用法和區別。

以下的說明基于下述變量:

?????? 01 T-DECIMAL????? PIC? 9(04)V9(2).
?????? 01 T-DECIMAL-R? REDEFINES? T-DECIMAL.
?????????????? 03 T-DECIMAL1?? PIC? X(04).
?????????????? 03 T-DECIMAL2?? PIC? X(02).
?????? 01 T-CHAR??????? PIC? X(04).
?????? 01 T-INTEGER????? PIC? 9(02).
?????? 01 T-DECIMAL-ED?? PIC? 9999.99.
?????? 01 T-EDIT???????? PIC?? X(08).

1)初始化

Cobol語言中的字符型聲明如下:

01 T-CHAR??????? PIC? X(04).

01 T-INTEGER????? PIC? 9(02).

聲明兩個變量,一個是四位的字符,一個是兩位的數值。

在調用初始化語句之前,這兩個變量的值都是類似于NULL的。

在調用了INITIALIZE語句,對這兩個變量初始化之后,字符串的T-CHAR被初始化成了四個空格,

而數值型的T-INTEGER被初始化為兩個0。

以上可知,字符型的變量會被初始化為滿位的空格,而數值型的變量會被初始化為滿位的0。

2)賦值

下面看一下賦值的情況。

MOVE 123456789 TO T-CHAR.

DISPLAY T-CHAR.
ADD 123 TO? T-INTEGER

DISPLAY T-INTEGER.

第一個顯示的是1234,第二個顯示的是23。

可知,Cobol在處理數值型的時候,如果位數不夠,會把前面的舍去,而字符型的是把后面的舍去。

上面的是位數過多的情況,位數不足的情況怎么樣呢?

MOVE 12 TO T-CHAR.
DISPLAY T-CHAR.
MOVE 123.45 TO T-DECIMAL.
DISPLAY T-DECIMAL1.

第一個顯示的是12? ,第二個顯示的是0123,
很有意思的,字符型的會在后面補空格,而數值型的會在前面補0。

3)特殊情況

一個是轉型,一個是數值型的運算。

MOVE? 1234.56 TO???? T-DECIMAL.
MOVE? T-DECIMAL?? TO? T-DECIMAL-ED.
MOVE? T-DECIMAL-ED?? TO? T-EDIT.
DISPLAY T-DECIMAL.
DISPLAY T-EDIT.
MOVE 98 TO T-INTEGER.
ADD 1 TO T-INTEGER.
DISPLAY T-INTEGER.
ADD 1 TO T-INTEGER.
DISPLAY T-INTEGER.

打出來的依次是:+123456,1234.56,+99,+00。

應該說,這個結果是很出乎我的意料的。

T-DECIMAL沒有問題,在內存中是不會存儲小數點的,打出來+123456時可以理解的。

但是經過轉型變換之后,T-EDIT竟然會打印出來小數點,這個很是奇怪,不過事實就是這樣,

我個人的估計是Cobol在處理這樣的轉型的時候,自己加上了小數點。

后面的兩個,特別是最后一個,應該還是比較容易理解的。

99加上1就是100,但是這個變量只有兩位,把前面的1舍去,就成了00。

這個地方在有運算的時候應該尤其注意。

這是在解析Cobol代碼的時候需要注意的地方,同樣的,在轉換為PL/SQL的時候,這也應該是需要注意的地方。

轉載于:https://www.cnblogs.com/game-over/articles/891147.html

總結

以上是生活随笔為你收集整理的改造Cobol项目应该注意的几个问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。