トップページ⇒tech
983コメント331KB

【COBOL】コボラー集まれ!2【事務処理】PIC

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/11/19(月) 00:36:03
リランってか
0655デフォルトの名無しさん2008/07/19(土) 01:21:10
>>654
>20代のコボラー
20代は「COBOLも(やれと言われれば)できます」くらいが望ましい

COBOL案件はシステム単位のまっさらな新規受注なんざマジで
皆無(※私感。もしかして、ある所にはあるのか・・・?)。
保守と引き継ぎ、改良依頼だけで家族養うには無難。
やりがい求めたところで乗り切れないぜ。どこに投げ込まれてもやる事は変わらないからね。

会議に出された際に、阿呆web系SEに言いくるめられない程度の
知識、話術があるべきだろうな。実務はどうあれ出来るかぎり把握しておくべき。

やりがいだけで生きたいなら院でうまいこと研究職見つけて
関数型言語中心の屋を目指した方がいい
0656デフォルトの名無しさん2008/07/19(土) 01:39:56
>>655
大卒だけどオープン系やるつもりだった、それがCOBOLの部に回された
たしかにいまだ完全な新規はないですね
今後の糧に、有りがたく言葉を受け取っておきます
0657デフォルトの名無しさん2008/07/19(土) 08:03:42
別にCOBOLの部だろうと運用だろうとどこでもいいとは思うけど、
そこに3年以上同じ事の繰り返しだとモチベーションが維持できないだろうなぁ。

そしてウチの会社の例だけどCOBOLの部に5年以上いたら
壊れるまでCOBOLに付き合わされる。俗に言う墓場。

しかし、若い人材だと可能性やら適正やら見る意味で色々な部にまわされると思う。
0658デフォルトの名無しさん2008/07/19(土) 09:27:47
やんぐはこぼるがだいきらいじゃのう。
さみしいのう。
0659デフォルトの名無しさん2008/07/19(土) 13:24:11
あー納得。
あの閉塞感は新規開発がないせいか〜。

わかることだけ、できるとこだけやっていればいいという雰囲気だーね。
0660デフォルトの名無しさん2008/07/19(土) 20:29:45
COBOLはセンスを問われる
動けばいいプログラムつくるな
0661デフォルトの名無しさん2008/07/19(土) 21:06:06
他人の保守作業が99%の現状でセンスもクソもないと思うが。

そして、「動くプログラムは全て美しい」だ。
0662デフォルトの名無しさん2008/07/19(土) 21:20:38
大昔にコボラーしてた者なんですがCOBOLのプログラム公開してるところないですか?
なんか久しぶりに見てみたくなりました
ジャンルは問いませんが出来ればサンプルとかじゃなく実用のものを・・・
0663デフォルトの名無しさん2008/07/19(土) 23:50:30
別に去年のソースも10年前のソースも20年前のソースも大差ないと
感じるが。
0664デフォルトの名無しさん2008/07/20(日) 00:16:33
確実にコメントアウトが増えてソースが汚くなっているけどな。
3案件以上前のソースは残しておいて何か意味あるのかねー…。

COBOLでもリファクタリングしたいよ。
0665デフォルトの名無しさん2008/07/20(日) 01:51:51
えーっとですね
コボラーの人たちは外に出てきてほしくありません
つか、組み込みの親分になられるとすごく困ります
0666デフォルトの名無しさん2008/07/20(日) 02:02:18
・・・COBOLで組み込み?親分??
0667デフォルトの名無しさん2008/07/20(日) 02:48:14
純コボラーの人は組み込みなんか到底てきない人がほとんどだよ
でもコボラーを長くなってる人の業務知識はなかなのもんだよ
0668デフォルトの名無しさん2008/07/20(日) 08:04:47
負け犬の遠吠えキター
0669デフォルトの名無しさん2008/07/20(日) 08:08:49
>>662
コボルつったら大型の汎用機で、しかも特定の業務に特化したシステムが当たり前だから
オープンソースってのは難しいだろう。

いまでも、商業系の学校以外じゃ学生が勉強するのは難しいって言われているんだから
(opencobolなんてのもあって、敷居は下がっているけど)
0670デフォルトの名無しさん2008/07/20(日) 09:29:49
>>665
COBOL専門にやってたオッサンが、組み込み系事業部の
親分になってしまったんですorz
0671デフォルトの名無しさん2008/07/20(日) 10:16:32
コボラーは基本的に他所ではやっていけない人がほとんどだからなぁ。
諦めろ。
それかもっと上の上司に相談汁。
0672デフォルトの名無しさん2008/07/20(日) 18:59:23
ACOS-2、ACOS-4の仕事は現在、有りますか?
0673デフォルトの名無しさん2008/07/20(日) 22:10:35
OSIV/MSPならあるんじゃね
0674デフォルトの名無しさん2008/07/20(日) 22:27:40
NECのCOBOLは
IBMや富士通とはちょっと違うらしいね。
0675デフォルトの名無しさん2008/07/21(月) 10:40:38
COBOL/S ?
0676デフォルトの名無しさん2008/07/21(月) 19:34:50
そうです。
Cobol/sです。
まだあるのですかね。
0677デフォルトの名無しさん2008/07/21(月) 21:39:56
COBOLの異端児 YPS は一刻も早くこの世から消えて無くなれ
0678デフォルトの名無しさん2008/07/21(月) 23:09:32
YPSとはまた懐かしいものを・・・。
ソースコードがそのままドキュメント(詳細設計書)になりますって
うたい文句は良かったんだけどね。
記号だらけの日本語コボルなんて、かえって読みにくくなるだけだったというオチ。
0679デフォルトの名無しさん2008/07/22(火) 07:47:00
汎用機で生き残っているのは銀行・保険業界が多い。
Nはそちらの方面弱いので、流通と運輸と官公庁に残っているのみ。
官公庁も汎用機は随意契約につながるから辞めろという命令がTOPから
出ていてお先真っ暗。
0680デフォルトの名無しさん2008/07/22(火) 10:15:25
随意契約の意味を教えてください。
汎用機、なんでダメなんでしょうねえ・・・。
仕掛けが単純で間違いが起こりにくくていいと思うんですけどねえ。
バリバリ並列処理もできるし。
0681デフォルトの名無しさん2008/07/22(火) 13:04:15
COBOLを基礎の基礎から学ぶのに適した参考書でオススメの参考書はどんなのがあるでしょうか?
0682デフォルトの名無しさん2008/07/22(火) 19:30:38
本はお金が勿体無いですよ〜。
Webでいいんじゃないでしょうかねえ。
http://www16.plala.or.jp/hiyokogumi/3/300.html
ココとかどうですか?

はあ、仕事が見つからない・・・。
俺の人生をREDEFINESしたい。
OCCURS 100くらいで。
人生のループ、終わっちゃったかな・・・。
もう、STOP RUNの時間かも。
あ、そんなの使わないよね。
GOBACKします。
0683デフォルトの名無しさん2008/07/22(火) 21:11:58
YACIIってまだ使ってるとこあるの?
0684デフォルトの名無しさん2008/07/22(火) 22:01:34
>>680
並列処理?

マルチプロセル・マルチスレッドならハードと言うよりプログラミングの問題
⇒汎用機でもバッチジョブはシングルスレッド

デュアルシステムなら汎用機の強みだが、最近はオープンでも実現している
⇒NEC ftサーバ
0685デフォルトの名無しさん2008/07/22(火) 23:38:42
OpenCOBOLてREAD 〜 NEXTはあるくせにREAD 〜 PRIORは無いのな
使えなさすぎる
0686デフォルトの名無しさん2008/07/22(火) 23:40:09
>>683
20年位前に名前変わったぞ。
何だったかは忘れたけど。
0687デフォルトの名無しさん2008/07/23(水) 00:03:10
>>676
うちんところは毎月動いているPGにCOBOL/Sの奴があるよ。
それとかGOTOしまくりとかいろいろある。
0688デフォルトの名無しさん2008/07/23(水) 00:29:55
COBOL/SはコンパイルオプションでCOBOLに展開したソースが
出力できるけどELSE NEXT SENTENCE と GO TOの嵐。
普通にコーディングした5〜6倍くらいはあったと思う。



0689デフォルトの名無しさん2008/07/23(水) 18:08:30
某銀行だけど
仕様書はYACII
さすがにYPSは使ってない
0690デフォルトの名無しさん2008/07/24(木) 21:40:46
mapperだよマッパー!
0691lovelace2008/07/24(木) 22:02:58
現在COBOLで以下のようなプログラムを作成しています。

受付日と今日の日付を比較して1ヶ月経過したデータと振り分ける。
 1ヶ月経過したものは、削除分のデータとしてディスクに保存
 1ヶ月経過していないものは、保存分のデータとしてディスクに保存

ただし、入力データは、受付日(6桁)に書かれているのは6桁(例:080524)
本日の日付は、システム時間で8桁(例:20080824)

このままでは、桁数が違うので、比較することができないため、受付日を8桁にしたいと考えています。
つまり、「'20'+受付日」としたいのです。

この場合、どのようにすればよろしいのでしょうか?
よろしくお願いします。
0692デフォルトの名無しさん2008/07/24(木) 22:10:46
>>691

01 WK受付日8.
03 FILLER PIC X(02) VALUE "20".
03 WK受付日6 PIC X(06).


・・・・・・


MOVE 受付日 TO WK受付日6.

この後、WK受付日8と、システム時間とを比較して何とかする。
  
0693デフォルトの名無しさん2008/07/24(木) 22:18:37
01 ウケツケビ.
02 ウケツケビA   PIC 9(02).
02 ウケツケビB PIC 9(06).
として、
 MOVE 20 TO ウケツケビA
 MOVE データウケツケビ TO ウケツケビB

 IF (ウケツケビ(の1ヶ月後) < 本日日付)
      ホゲホゲ
 ELSE
      ホゲホゲ
 END-IF

とやれば出来るけど、このプログラムの難しいのは
「○月○日の1ヶ月後は×月×日」
の判定だと思う。(「○月○日の×日後」は簡単だけど)

まあ、そういう関数なり、サブルーチンが有れば良いけど、この判定は
各業務によって違うから注意が必要。

0694lovelace2008/07/24(木) 22:21:29
お二人とも回答ありがとうございます。
書き忘れたことがあるのですが、判定するのは、年月のみで日は関係ありません。
0695デフォルトの名無しさん2008/07/24(木) 23:05:33
>>694 こんな感じか(西暦2100年問題あり)

01 WK受付日6.
  03 WK受付年月.
    05 WK受付年   PIC 9(02).
     05 WK受付月   PIC 9(02).
  03 FILLER       PIC 9(02).
01 WKシステム時間8
  03 FILLER      PIC 9(02).
  03 WKシステム年月.
   05 WK受付年   PIC 9(02).
   05 WK受付月   PIC 9(02).
  05 FILLER       PIC 9(02).

・・・・

MOVE 受付日 TO WK受付日6.
MOVE システム時間 TO WKシステム時間8.

IF WK受付月 = 12 THEN
  ADD  1 TO WK受付年
  MOVE 1 TO WK受付月
ELSE
  ADD  1 TO WK受付月
END-IF.

IF WK受付年月 <  WKシステム年月 THEN
  削除分
ELSE
  保存分
END-IF.
0696デフォルトの名無しさん2008/07/24(木) 23:22:40
のちの3000年問題である。
0697lovelace2008/07/24(木) 23:37:36
回答ありがとうございます。

今考えているのは、
 「現在年月の1ヶ月前の年月を別のエリアで計算する」
という方法です。

また、受付年月は、

01 WORK-AREA.
05 WK-UKETUKEBI
10 WK-UKETUKE-YM PIC X(04).
10 FILLER PIC X(02).
01 DATE-AREA.
05 SISUTEMU-DATE.
10 SISUTEMU-NENGETU PIC X(06).
10 FILLER PIC X(02).


と記述します。
0698デフォルトの名無しさん2008/07/25(金) 10:11:02
>>695氏の考え方でいいんじゃないの?
COBOLやってる人だったら普通にできると思うけど、
そういうの自分で考えないと覚えないよ。
0699デフォルトの名無しさん2008/07/26(土) 00:10:23
>>691
人に聞くことの問題だとは思わんが

未だにファイルに日付を6桁で保持するって

0700デフォルトの名無しさん2008/07/26(土) 06:16:02
うちもやってる。
2000年問題のとき「IF YY >76 THEN 1900年代 ELSE 2000年代」
で逃げているソースがあちらこちらに。

システム作り直しが早いか、2076年が早いか。
0701デフォルトの名無しさん2008/07/26(土) 21:04:08
うちは昭和83年のプログラムがあるよ。
0702デフォルトの名無しさん2008/07/26(土) 21:12:14
それいつよ
0703デフォルトの名無しさん2008/07/26(土) 22:11:14
>>702 今年じゃねぇの?
0704wolf ◆8VH3XAqjlU 2008/07/27(日) 21:15:57
>>685
ISAMだけかな

http://opencobol.no-ip.org/download.html
open-cobol-1.0.tar.gz

000000031524 typeck.c 04384 CB_FILE (file)->access_mode == COB_ACCESS_SEQUENTIAL) {
000000031525 typeck.c 04385 /* READ NEXT/PREVIOUS */
000000031526 typeck.c 04386 if (next == cb_int2) {
000000031527 typeck.c 04387 if (CB_FILE (file)->organization != COB_ORG_INDEXED) {
000000031528 typeck.c 04388 cb_error_x (CB_TREE (current_statement),
000000031529 typeck.c 04389 _("READ PREVIOUS only allowed for INDEXED SEQUENTIAL files"));
0705デフォルトの名無しさん2008/07/29(火) 10:19:02
3000年問題(笑)。
コボルがあるわけないだろ(笑)。
0706デフォルトの名無しさん2008/07/29(火) 12:43:27
逆読みですか。
そんな事もできるんだ・・・。
0707デフォルトの名無しさん2008/07/29(火) 23:21:45
2000年問題当時、「我が社は、昭和通年方式だから問題なし。がはは。」
って笑ってた会社が結構あったが、それはそれで
「昭和100年問題=2025年問題」を抱えてるんだよな。
今から17年後だが、はたしてCOBOLは消えてくれるでしょうか…
0708デフォルトの名無しさん2008/07/29(火) 23:28:04
1000年後は人類も終わってそうだ
0709デフォルトの名無しさん2008/07/30(水) 01:57:26
2000年問題の時、OSが対応して無くて(一応汎用機)、
メーカーも対応する予定がなかったため
システムの日付を和暦にして対応した。

0710デフォルトの名無しさん2008/07/30(水) 07:12:43
>>709
その調子で、今後はイスラム暦とか中華民国暦とか、
使えるやつを探して乗り切るんだ。
0711デフォルトの名無しさん2008/07/30(水) 11:26:06
安田生命のシステムは、2000年問題を見越して皇紀で作成されていたらしい。
2040年問題は発生するが、さすがにそこまでは持たないかな。
0712デフォルトの名無しさん2008/07/30(水) 18:26:51
主体暦にもぜひ対応きぼん
0713デフォルトの名無しさん2008/07/31(木) 23:59:08
>712
北朝鮮にでも輸出するのかw
0714デフォルトの名無しさん2008/08/01(金) 18:11:46
>>704

PREVIOUSについては書いた後で気づいたよ
しかし他にも無いものが多すぎる
0715デフォルトの名無しさん2008/08/01(金) 18:26:52
関数などに頼らず自分でなんとかするのがこぼらーなのさ☆
個人的にCOBOLのイヤなところは、可変長を非常に扱いづらいところ。
0716デフォルトの名無しさん2008/08/02(土) 11:31:52
CICSって今から勉強する価値ある?
まだまだ使われている??

日本語資料がIBMの正規マニュアルしかない…。
その上、意味が分からない。
0717デフォルトの名無しさん2008/08/02(土) 16:30:04
まだまだ使われてるんじゃないでしょうかねえ。
オンラインですよねえ。
そういう仕事は、現場のやり方に従えば、いいですよ。
特別に勉強しなきゃということもないと思いますけど、
TSOを使えるようになっときゃ大丈夫なんじゃないでしょうかねえ。
(TSOの操作も、現場で充分覚えられると思いますよ)
0718デフォルトの名無しさん2008/08/02(土) 16:51:21
そんなことよりADABASをなんとかしてくれ
0719デフォルトの名無しさん2008/08/02(土) 23:46:29
>>715

そんなに可変長って扱いにくいかなぁ
あまり意識したことないけど
0720デフォルトの名無しさん2008/08/03(日) 06:33:04
そりゃ、根本の設計から「可変長」と言う単語が抜けているだけかと。
0721デフォルトの名無しさん2008/08/03(日) 08:52:47
俺が前やっていたとこでは、
File/DB IOサブルーチンで全てのCOMP-3をUNPACKに、可変長を最大Lengthを取る固定長に変換してた。
0722デフォルトの名無しさん2008/08/04(月) 13:33:31
そうだよね。そうしないとできないよね。
0723デフォルトの名無しさん2008/08/05(火) 00:24:53
金融の仕事ってつまんねぇなぁ
0724デフォルトの名無しさん2008/08/05(火) 00:51:03
デリバティブとか面白そうじゃん
0725デフォルトの名無しさん2008/08/05(火) 06:02:53
>>724 もはやCOBOLでは対応不可能な領域なのでは?
0726デフォルトの名無しさん2008/08/05(火) 07:07:37
>>724
贅沢いえるほど仕事の選択肢がない
0727デフォルトの名無しさん2008/08/05(火) 22:48:31
COBOLでバリバリ新規開発がしたい
0728デフォルトの名無しさん2008/08/06(水) 00:45:34
ねぇよ、そんな需要w
0729デフォルトの名無しさん2008/08/06(水) 13:41:00
リプレースの仕事だったけど、
昔のソース(PL/I)がやばすぎて、
COBOLで作り直す仕事あったよ。
0730デフォルトの名無しさん2008/08/06(水) 14:05:55
>>724 非線型微分方程式ってCOBOLで計算可能ですか?
0731デフォルトの名無しさん2008/08/06(水) 14:16:08
式そのものは、どんな言語でも計算できるんじゃない?
COBOLは、数値の扱いが、
他の言語で言うところの通貨型のみだから、
誤差が出なくていいかもね。
0732デフォルトの名無しさん2008/08/06(水) 14:34:15
>>731
似たようなことやったことあるけど、有意な桁数を計算しようとすると
計算が終わらない
つか、1日まわして答えが出なかったんで途中でやめた
# 計算途中の結果はあってたんだけどね
0733デフォルトの名無しさん2008/08/06(水) 15:06:54
>1日まわして答えが出なかったんで途中でやめた
それはウソでしょ。
純粋に計算するだけでしょ?
ファイルアクセスとかしないんでしょ?
だったらそんなに時間はかからないはずだよ。
コンピューターだよ?
8ビットのパソコンでもできるでしょそのくらい。
0734デフォルトの名無しさん2008/08/06(水) 18:48:42
ややこしい計算の部分をフォートランで行って、COBOLの方はそれを受けるのみ
なら以前やった(フォートランの部分は別の人間が担当してた
0735デフォルトの名無しさん2008/08/06(水) 19:12:30
>>733 コンパイラの最適化性能の問題だと思う
問題の計算はFORTRANで書いても数時間かかったが
0736デフォルトの名無しさん2008/08/06(水) 19:45:02
そっかあ、フォートランはわからないです・・・。
難しい技術計算向けの言語ですからねえ。
それでも時間がかかるのですか。

そんな式、扱ったことがないです・・・。
0737lovelace2008/08/06(水) 22:14:43
>691をもう一度質問させてください。
入力データに記載されている受付日は2000年以降のものしかないため、受付日の先頭に20を追加します。
なお、判定日の1ヶ月前年月はサブモジュールで実装しています。
振り分けの条件では、年月のみで比較します。
(例)
 受付日 080629   →200806 ('20')を追加
 判定日 20080806  →200808
 
また、Copy句ファイル(BSCP10A)には、
 10 'XXX-KEY-KOMOKU'
  15 'XXX'-RIYOU-YMD PIC X(06).
  15 'XXX'-RIYOU-ZIKOKU PIC X(06).
 
と定義されています。
以下のように実装してみました。(抜粋)
WORKING-STORAGE SECTION.
01 DATA-IN. COPY BS10A SUPPRESS PREPLACING =='XXX'==BY==BS10A==.
01 DATA-OUT1. COPY BS10A SUPPRESS PREPLACING =='XXX'==BY==BS10A==.
01 DATA-OUT2. COPY BS10A SUPPRESS PREPLACING =='XXX'==BY==BS10A==.
01 WORK-AREA. //ここに受付日を8桁にする方法を記述?
05 WK-DATA-RIYOBI.
PROCEDURE DIVISION.
*--<主処理>--
MOVE BS10A-RIYOU-YMD TO WK-DATA-RIYOBI.
//以下に振り分け条件記述
6桁にした受付日と判定日の1ヶ月前年月を比較

入力データの受付日に20を追加して6桁にする方法を教えてください。どうか皆様のお力を貸してください。
お願いします。
0738デフォルトの名無しさん2008/08/06(水) 22:42:18
>>692,693,695あたりでいんじゃないの?
0739デフォルトの名無しさん2008/08/06(水) 23:00:38
>>737
0740デフォルトの名無しさん2008/08/07(木) 01:49:19
>>735
FORTRANで数時間かかる問題をCOBOLにやらせる意味がわからんし
そんな計算をjavaでやっても1日かかっておわるのか?

計算に関してはFORTRAN以上に早い言語は今のところないんじゃないの
円周率の計算も未だにFORTRANだったとおもう
0741デフォルトの名無しさん2008/08/07(木) 02:53:19
>>733が世間知らずって事で
0742デフォルトの名無しさん2008/08/07(木) 11:46:28
プラットフォームじゃなくて
言語の問題なの??
お前ら言ってる事おかしくない???
0743733_736_742だけど2008/08/07(木) 11:55:28
じゃあ8ビットのパソコンに円周率を計算させたら、
そんなに遅いか???
一応言い分は聞いてやろうと思って折れると、
調子に乗る奴らだな。
0744lovelace2008/08/07(木) 22:57:08
>738
ありがとうございます。
TSOにて開発しているのですが、コンパイル(COBOL�U)すると、

MOVE BS10A-RIYOU-YMD TO WK-DATA-RIYOBI.

の部分で、「BS10A WAS NOT A UNIQUELY DEFINED NAME.」

というメッセージが出てしまいます。
これを解決するにはどうすればよいでしょうか?
0745デフォルトの名無しさん2008/08/07(木) 23:59:16
>>744
COBOL�Uってマジかよ?
今あるのか?

BS10Aが一意でない定義名って意味だよ。
ハイフン抜けてるんじゃない?
0746デフォルトの名無しさん2008/08/08(金) 05:26:47
今でもいつでもありますよ…。
変数定義が重複していないか確認だーね。


>>718
ASABASってなんであんなにFIND遅いの?
READもDB�Uより激遅。
0747デフォルトの名無しさん2008/08/08(金) 14:11:25
>>744

ソースで取り込んでいるCOPY句の中に、同じ変数名があるんだと思う。
WORKING−STORAGE SECTIONの、
COPY なんちゃら の部分のコトです。
基本的にCOPY句の変数名は変えられないけど、
どうしてもそっちを変えたければ、
COPY BS10A REPLACING なんちゃら で変えられるはず。
0748デフォルトの名無しさん2008/08/08(金) 16:12:43
あ、REPLACING指定については、
ちょっと書式が違うかもです・・・。
すみません。
そのへんは、資料やマニュアルなどを、
見て頂けませんでしょうか。すみません。
0749デフォルトの名無しさん2008/08/08(金) 17:53:54
COBOLって簡易言語ってやつだよね?
これって総務とか経理で使えない奴がやらされる奴だよね?
0750デフォルトの名無しさん2008/08/08(金) 19:05:25
>>749
事実上、COBOLとFORTRANしかなかった時代もあるんだけどね。
0751デフォルトの名無しさん2008/08/08(金) 22:10:13
>>746
あったとしてもサポート切れてるだろ?
0752デフォルトの名無しさん2008/08/08(金) 23:07:54
PL/Iもあるでよ?
0753デフォルトの名無しさん2008/08/08(金) 23:12:34
>>749
マジか、今年就職したんだけど、今COBOLやってる!
いきなり使えないと判断されたんだろうか。
0754デフォルトの名無しさん2008/08/08(金) 23:49:49
>>753
涙が止まりません・・・

まあ、なんというか・・・
所詮、仕事なんか怒られない程度にやっとけ
仕事以外で充実した人生を送れ
■ このスレッドは過去ログ倉庫に格納されています