PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
cmwang
Elite Member
 

加入日期: May 2002
您的住址: 板橋
文章: 5,112
尋找會COBOL的programer....

鵝這邊有個case,是要幫user解民國百年蟲的(有source code,雖然不見得很簡單但至少不是mission impossible ),因為鵝沒實際摸過COBOL所以還是讓專業的來吧,有興趣的朋友請pm給鵝以便詳談....
     
      
__________________
士大夫之無恥,是謂國恥....
舊 2011-06-29, 10:05 AM #1
回應時引用此文章
cmwang離線中  
peter liou
Power Member
 
peter liou的大頭照
 

加入日期: Feb 2005
您的住址: 棺材板的故鄉
文章: 556
RM85還是MS的? 建議user早日改寫, COBOLer都洗手賣雞排了.
 
__________________
29年煙齡 100.01.23 戒除滿四年
98.07.12 14:11 再添丁 3195g 50cm
舊 2011-06-29, 01:13 PM #2
回應時引用此文章
peter liou離線中  
cmwang
Elite Member
 

加入日期: May 2002
您的住址: 板橋
文章: 5,112
引用:
作者peter liou
RM85還是MS的?


這鵝也不太清楚,鵝只知道OS是SCO Openserver 5就是了:asae....

引用:
作者peter liou
建議user早日改寫, COBOLer都洗手賣雞排了.


其實user是找了寫Web based AP的人打算重寫,但卡在寫AP的人無法正確的把舊資料import進SQL,所以鵝只好連這部份一起想辦法了(鵝本來只是接換機和P2V的部份),不過COBOLer都洗手賣雞排了倒有點出人意表----真有這麼慘嗎,應該可以轉戰其它程式語言吧 ....BTW,以下是鵝稍微看了一下source code的印象,因為西元/民國換算是寫成獨立的procedure(傳入值是Unix系統日期,應該不至於有single byte的問題),只有4-5個procedure會呼叫這部份,是不是只要針對這些部份check就有機會啊 ....

引用:
IDENTIFICATION DIVISION.
PROGRAM-ID. DATECHCK.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. ALTOS.
OBJECT-COMPUTER. ALTOS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WK-FILE-S.
05 DATE-CHK-1 PIC X(06).
05 DATE-CHK-2 REDEFINES DATE-CHK-1.
10 DATE-CHK-YY PIC 99.
10 DATE-CHK-MM PIC 99.
88 DATE-DAY-31 VALUE 1 3 5 7 8 10 12.
88 DATE-DAY-30 VALUE 4 6 9 11.
88 DATE-DAY-28 VALUE 2.
10 DATE-CHK-DD PIC 99.
05 DATE-CHK-LEAP PIC 9.
05 DATE-CHK-CNT PIC 9(05).
05 DATE-CHK-REM PIC 9(03).
05 DATE-CHK-QUO PIC 9(03).
05 YEAR-ERR PIC X(38) VALUE "年度錯誤.......!!".
05 MONTH-ERR PIC X(38) VALUE "月份錯誤.......!!".
05 DAY-ERR PIC X(38) VALUE "日期錯誤...... !!".
05 WIN-ERR PIC X(10) VALUE SPACES.
05 QUEST PIC X(01) VALUE SPACES.
LINKAGE SECTION.
COPY "DATECHCK.LNK".
PROCEDURE DIVISION USING DATE-LINK.
CHECK-RTN.
MOVE 0 TO DATE-CHK-RTN.
MOVE DATE-CHK TO DATE-CHK-1.
COMPUTE DATE-CHK-CNT = 1911 + DATE-CHK-YY.
PERFORM LEAP-YEAR-RTN.
IF DATE-CHK-YY IS NOT NUMERIC
MOVE 3 TO DATE-CHK-RTN
GO TO CHECK-1.
IF DATE-CHK-MM < 1 OR DATE-CHK-MM > 12
MOVE 1 TO DATE-CHK-RTN
GO TO CHECK-1.
IF DATE-DAY-31 IF (DATE-CHK-DD < 1 OR DATE-CHK-DD > 31)
MOVE 2 TO DATE-CHK-RTN
GO TO CHECK-1.
IF DATE-DAY-30 IF (DATE-CHK-DD < 1 OR DATE-CHK-DD > 30)
MOVE 2 TO DATE-CHK-RTN
GO TO CHECK-1.
IF DATE-DAY-28 PERFORM DAY-28-RTN.
CHECK-1.
EVALUATE TRUE
WHEN DATE-CHK-RTN = 1 OR 2 OR 3
DISPLAY WINDOW LINE 12 COL 21 LINES 3 SIZE 40
REVERSE POP-UP AREA WIN-ERR
EVALUATE DATE-CHK-RTN
WHEN 1
DISPLAY MONTH-ERR LINE 2 SIZE 40 CENTERED
WHEN 2
DISPLAY DAY-ERR LINE 2 SIZE 40 CENTERED
WHEN 3
DISPLAY YEAR-ERR LINE 2 SIZE 40 CENTERED
END-EVALUATE
ACCEPT QUEST LINE 2 COL 40 OFF NO BEEP AUTO
BEFORE TIME 100 ON EXCEPTION CONTINUE
END-ACCEPT
CLOSE WINDOW WIN-ERR
WHEN DATE-CHK-RTN = 0
PERFORM RTN-DAY-RTN
END-EVALUATE.
CHECK-E.
EXIT PROGRAM.

LEAP-YEAR-RTN.
MOVE 0 TO DATE-CHK-LEAP.
DIVIDE DATE-CHK-CNT BY 4 GIVING DATE-CHK-QUO
REMAINDER DATE-CHK-REM.
IF DATE-CHK-REM = 0 MOVE 1 TO DATE-CHK-LEAP.
DIVIDE DATE-CHK-CNT BY 400 GIVING DATE-CHK-QUO
REMAINDER DATE-CHK-REM.
IF DATE-CHK-REM = 0 MOVE 0 TO DATE-CHK-LEAP.

DAY-28-RTN.
IF DATE-CHK-LEAP = 0
IF (DATE-CHK-DD < 1 OR DATE-CHK-DD > 28)
MOVE 2 TO DATE-CHK-RTN
END-IF
ELSE
IF (DATE-CHK-DD < 1 OR DATE-CHK-DD > 29)
MOVE 2 TO DATE-CHK-RTN.
RTN-DAY-RTN.
IF DATE-DAY-28
IF DATE-CHK-LEAP = 0 MOVE 28 TO DATE-CHK-DD END-IF
IF DATE-CHK-LEAP = 1 MOVE 29 TO DATE-CHK-DD END-IF.
IF DATE-DAY-30 MOVE 30 TO DATE-CHK-DD.
IF DATE-DAY-31 MOVE 31 TO DATE-CHK-DD.
MOVE DATE-CHK-1 TO DATE-CHK.
END-PROGRAM.

舊 2011-06-29, 04:27 PM #3
回應時引用此文章
cmwang離線中  
peter liou
Power Member
 
peter liou的大頭照
 

加入日期: Feb 2005
您的住址: 棺材板的故鄉
文章: 556
引用:
作者cmwang
這鵝也不太清楚,鵝只知道OS是SCO Openserver 5就是了:asae....

其實user是找了寫Web based AP的人打算重寫,但卡在寫AP的人無法正確的把舊資料import進SQL,所以鵝只好連這部份一起想辦法了(鵝本來只是接換機和P2V的部份),不過COBOLer都洗手賣雞排了倒有點出人意表----真有這麼慘嗎,應該可以轉戰其它程式語言吧 ....BTW,以下是鵝稍微看了一下source code的印象,因為西元/民國換算是寫成獨立的procedure(傳入值是Unix系統日期,應該不至於有single byte的問題),只有4-5個procedure會呼叫這部份,是不是只要針對這些部份check就有機會啊 ....

SCO 的話, RM的可能性比較大, 日期欄位最怕的是在執行段作運算, 為了應付user
的一些奇怪報表, 有時會作日期拆碼重組....
COBOLer還在線上的, 可能要找金融業方面的software-house看看, 如果只要轉檔,
可能要看當初有沒有做檔案結構表, 沒有的話.....就傷腦筋了.
方便給一兩個資料檔給小弟看看? 小弟記得有直接讀取DAT 格式的工具支援RM.
__________________
29年煙齡 100.01.23 戒除滿四年
98.07.12 14:11 再添丁 3195g 50cm
舊 2011-06-29, 05:08 PM #4
回應時引用此文章
peter liou離線中  
pcdvd user
*停權中*
 

加入日期: Jul 2008
您的住址: Taipei
文章: 66
前年就已經把所有cobol的程式全部用java改寫, 就是要避百年年序問題, 現在會寫cobol的人不多了, 找一個會轉資料的人卡實在
舊 2011-06-29, 05:42 PM #5
回應時引用此文章
pcdvd user離線中  
parssi
Junior Member
 
parssi的大頭照
 

加入日期: Jun 2008
您的住址: इन्द्र(शक्र) w/ शची
文章: 837
cobol這個名稱 好久遠唷 XD

我還以為沒人在用這套軟體開發東西

早期上寫資料庫程式都會教 不過那也是16-17年前
__________________
空谈误国 实干兴邦

謹養而勿勞,併氣積力,運兵計謀,為不可測。

Carefully study the well-being of your men,and do not overtax them.
Concentrate your continually on the move and devise unfathomable plans.

從1999年時的帳號 再次重生

[原始點手冊]

繁體版《原始點醫學》(2019年12月第十六版)

官網:
http://cch-foundation.org/

願各位板友都能身体健康!
舊 2011-06-29, 06:48 PM #6
回應時引用此文章
parssi離線中  
ccx1103
Regular Member
 

加入日期: Aug 2005
文章: 72
我不太會cobol, 但是單看程式碼, 問題未必出在這段程式.
這段程式只是在檢查日期後,傳回日期

10 DATE-CHK-YY PIC 99.
改成
10 DATE-CHK-YY PIC 999. 即可

其餘並沒有什麼重要的...
大概就是 100年+1911=2011年,
2011/4 整除就是閏年,閏年的2月=29天。
但是 2011/400 整除不是潤年
其他大概是檢視月份between 1 to 12,
日期 between 1~30 or 1~31
感覺出錯的機會並不大
舊 2011-06-29, 09:27 PM #7
回應時引用此文章
ccx1103離線中  
kec
Major Member
 
kec的大頭照
 

加入日期: Feb 2004
您的住址: Terran Empire
文章: 283
引用:
作者ccx1103
我不太會cobol, 但是單看程式碼, 問題未必出在這段程式.
這段程式只是在檢查日期後,傳回日期

10 DATE-CHK-YY PIC 99.
改成
10 DATE-CHK-YY PIC 999. 即可

其餘並沒有什麼重要的...
大概就是 100年+1911=2011年,
2011/4 整除就是閏年,閏年的2月=29天。
但是 2011/400 整除不是潤年
其他大概是檢視月份between 1 to 12,
日期 between 1~30 or 1~31
感覺出錯的機會並不大

只把DATE-CHK-YY改成PIC 999是不行地。
DATE-CHK-YY、DATE-CHK-MM與DATE-CHK-DD(各兩位數字)是對應到DATE-CHK-1,而DATE-CHK-1只有六位數字。DATE-CHK-1要能改成七位數字才行,這牽涉到程式其他部分怎麼用DATE-CHK-1。

或許用ETL(Extract, Transform and Load)工具把舊資料轉進DB是比較可行的作法。
__________________
--------------------
一個航太時代的句點
2012年4月27日 OV-101 Space Shuttle Enterprise運抵紐約
舊 2011-06-30, 12:54 AM #8
回應時引用此文章
kec離線中  
seawind
Junior Member
 

加入日期: Dec 2000
您的住址: ROC
文章: 740
銀行業的還有很多用COBOL啦∼∼∼
舊 2011-06-30, 06:33 AM #9
回應時引用此文章
seawind離線中  
951
Senior Member
 
951的大頭照
 

加入日期: May 2003
文章: 1,179
引用:
作者seawind
銀行業的還有很多用COBOL啦∼∼∼



券商也一堆...

有認識幾個還在裡面搞cobol的..還需要麼?
__________________
我是誰
舊 2011-07-01, 03:07 PM #10
回應時引用此文章
951離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是07:41 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2026。