X



【初心者歓迎】最新COBOLについての質問スレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2014/07/12(土) 19:55:29.68ID:zUgpYhfE
みんなでCOBOLの話題をしましょう。
質問あったらどうぞ。

最新リリース COBOL 2002
http://ja.wikipedia.org/wiki/COBOL

■ フリーCOBOL
OpenCOBOL
http://jp.opencobol.org/
TinyCOBOL
http://tiny-cobol.sourceforge.net/index.php

第4次COBOL規格 COBOL2002のご紹介
http://www.cobol.gr.jp/knowledge/next_standard/standard002.html
COBOL2002では、全体で約150の追加変更が行われています。ただし、追加変更項目の互換性の保持には
十分に注意がはらわれており、従来のCOBOLプログラムから外れるものではありません。大きな追加機能項目として次の項目があります。
1. コンパイル時指示機能
2. 自由形式の正書法
3. ビット操作機能
4. 漢字等の多オクテット文字機能
5. 浮動小数点データ操作機能
6. ポインタ項目とアドレス付け機能
7. 利用者定義のデータ型機能
8. 利用者定義の関数機能
9. ファイルの共用と排他制御の機能
10. 画面処理機能
11. 例外割り込み処理機能
12. データの妥当性検査機能
13. オブジェクト指向機能
14. 言語間連絡の拡張
15. 標準算術演算と31桁への拡張
16. その他(POSIXのロケールに対応した地域・文化固有機能、既存プログラムとの互換)
0094デフォルトの名無しさん
垢版 |
2015/10/21(水) 19:00:58.80ID:ZXMR/M8n
>>93
君は下のスレにも、書き込んでいるけど、
2chではマルチポスト禁止だよ。
書き込むスレは、1つだけにすべし

くだすれPython(超初心者用) その27
ttp://peace.2ch.net/test/read.cgi/tech/1441317912/633
0095デフォルトの名無しさん
垢版 |
2015/10/21(水) 19:52:39.87ID:0O4ctYur
>>93
全部チェックしたらCLOSE-OPENして、全件READ-WRITEすりゃいいじゃん

まぁそもそも俺ならそんな設計にしないけど。
0096デフォルトの名無しさん
垢版 |
2015/10/22(木) 12:53:37.75ID:U0VHjROY
>>94

すみません…
間違いました
009793です
垢版 |
2015/10/22(木) 12:55:42.16ID:U0VHjROY
>>95

どのような設計にされますか?
考えつかないので教えてください。
よろしくお願いします。
0098デフォルトの名無しさん
垢版 |
2015/10/22(木) 16:39:55.27ID:kqL6nEw1
>>97
もっと大きなくくりで何をやりたいのか聞く必要があるが、
チェックエラーがある時だけ、RETURN-CODEに5点入れて終了
JOB制御で0点なら次の処理。とかにすれば、全件正常の時だけ次のステップが流れる。
009993です
垢版 |
2015/10/22(木) 17:36:13.76ID:kusYMIqN
回答ありがとうございます。
RETURN−CODEで制御する方法もあるのですね。

今回やりたいことは、以下の通りです。
入力ファイルのチェック処理を行い、チェックエラー有無によって
出力ファイルの内容を可変にしたいです。

前提として、チェックエラーの有無に関わらず、次のステップを行うようにしたいです。
(これについては、JOB制御でコードを判定すれば、
RETURN-CODEが0点でなくても大丈夫ということですね!)

大きな仕様としては
チェックエラーありの場合→0件ファイルを出力。
チェックエラーなしの場合→入力ファイルを全件出力

という感じです。

文章にすると単純なのですが、実際コーディングすると
良い実現方法が分かりませんでした。
0100デフォルトの名無しさん
垢版 |
2015/10/22(木) 23:30:35.35ID:kqL6nEw1
そもそも正常、エラーの振り分けをやって、エラーのみリスト出力の方が綺麗だとおもう。
エラー有り時は、JOB正常終了させなければ、次の処理にも進まないし。

でも、あなたの仕様で一番簡単なのは、こんな感じかな?
OPENCLOSE技はあまりカッコいいとは言えないけど、内部テーブルやソート使うやり方よりシンプルに出来る気がする。

PROC-RTN.
IF エラーあり?
THEN MOVE 1TO ERROR-SW
MOVE "END" TO END-SW
END-IF

END-RTN
CLOSE FILE1.
*エラー時、出力データ削除
IF ERROR-SW = 1
THEN OPEN OUTPUT FILE1
CLOSE FILE1
END-IF
0101デフォルトの名無しさん
垢版 |
2015/10/22(木) 23:33:44.14ID:kqL6nEw1
COBOLはレコード処理なので、
正常時のみ全件出力よりも、とりあえす処理済みレコード出力しておいて、エラー時に出力を無かったことにする方が簡単。
0102デフォルトの名無しさん
垢版 |
2015/10/22(木) 23:50:06.84ID:kqL6nEw1
もっと真面目に書いてみた

PERFORM INIT-RTN.
PERFORM PROC-RTN
UNTIL END-SW = "END".
PERFORM END-RTN.

INIT-RTN.
OPEN INPUT INFILE.
OPEN OUTPUT OUTFILE.
PERFORM READ-RTN.
EXIT.

PROC-RTN.
IF エラーなし?
THEN WRITE OUT-REC FROM IN-REC
ELSE MOVE 1TO ERROR-SW
MOVE "END" TO END-SW
END-IF
PERFORM READ-RTN.
EXIT.

END-RTN
CLOSE INFILE.
CLOSE OUTFILE.
*エラー時、出力データ全件削除
IF ERROR-SW = 1
THEN OPEN OUTPUT OUTFILE
CLOSE OUTFILE
END-IF.
EXIT.
010493です
垢版 |
2015/10/23(金) 12:36:58.37ID:BHTqhpgW
>102

丁寧なご回答ありがとうございます。
自分では全くできない発想なので、とても感動しました!!

また、COBOLはレコード処理なので、毎回出力する方が簡単という
ご説明もあり、とても分かりやすかったです。

実際に例を参考にコーディングさせていただきたいと思います。

ありがとうございました。
0106デフォルトの名無しさん
垢版 |
2016/01/11(月) 05:41:34.73ID:mrupJf8M
今までに無い全く新しい手法!
http://goo.gl/B9ISvH
0107デフォルトの名無しさん
垢版 |
2016/04/05(火) 02:46:49.45ID:2X2ng6yq
かけ
0108デフォルトの名無しさん
垢版 |
2016/05/29(日) 10:25:31.70ID:+agYc6M6
BOSとかEOSのSって何のS?
0111デフォルトの名無しさん
垢版 |
2016/07/04(月) 21:15:17.39ID:NfMIw++W
申し訳ない!
0113デフォルトの名無しさん
垢版 |
2016/07/16(土) 07:11:07.74ID:lpfzSywq
C言語でいうと前者がバイナリ、後者がテキスト
レコード単位でアクセスするか、改行文字で区別して行単位でアクセスするかの差
LINE SEQUENTIALだとWRITE文使った時に改行文字が追加出力される

文法的にはORGANIZATION IS SEQUENTIALと書いたときは
ORGANIZATION IS RECORD SEQUENTIALと指定したのと同じ意味
(SEQUENTIALはRECORDがデフォルト設定なので)
0118デフォルトの名無しさん
垢版 |
2016/12/23(金) 13:28:57.31ID:x26VaV3/
cobolを全然触ったことない初心者なんですが
仕事でcobolを使うことになったので勉強しようとしてます。

opencobolで環境構築して動かそうと思ったのですが上手くいきません。
どんな風に構築したか書いていいでしょうか?
そしてどこが悪いのか教えてもらえますでしょうか?
0120デフォルトの名無しさん
垢版 |
2016/12/23(金) 14:07:51.89ID:x26VaV3/
>>118です。

ありがとうございます。

ある参考書を買ってそこに書いてあるOpenCobolを構築しようと思いました。

http://www.mingw.org/
まずはMinGWを上記からダウンロードし、インストールして
ライブラリをインストールしました。
その後、環境変数のPATHにMinGWを格納したパス:C:\MinGWを設定。

次にOpenCobol(Guncobol)をダウンロードして
ダウンロードした中のフォルダをMinGWのフォルダの中に上書き

環境変数COB_CONFIG_DIRを作成し、パスをC:\MinGW\configに設定

その後、コマンドプロンプトでcobcと入力しても
『"cobc"は、内部コマンドまたは外部コマンド、操作可能なプログラムまたは
バッチファイルとして認識されていません。』と表示されます。

どこが悪いか教えてください。
お願い致します。
0122片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2016/12/23(金) 14:23:19.35ID:3xdKhrkh
PATHにC:\MinGWを指定したのが間違い。EXEがある場所を指定しないといけない。
0125デフォルトの名無しさん
垢版 |
2016/12/23(金) 21:45:24.82ID:x26VaV3/
>>124
ありがとうございます。

環境構築できないのは残念ですが
仕事で使うまでに基本的な文法を学びたかったので
これで学習できそうです。
0126デフォルトの名無しさん
垢版 |
2017/01/25(水) 07:10:31.78ID:UsTZ20bb
生前退位による新年号はCOBOLで運用されているシステムに影響を与えますか?
0128デフォルトの名無しさん
垢版 |
2017/01/25(水) 14:52:44.02ID:0R47tUcT
そら消費税よりは頻度が少ないからなぁ。
でも平成に切り替わる時にある程度やったんでわ?
0130デフォルトの名無しさん
垢版 |
2017/01/31(火) 20:36:59.82ID:l4XzwBX4
http://www.kunst1080.net/entry/2015/05/07/235848
どうにもできないのでこちらの方法でやってみたのですが、nkfのセットアップというところでmakeコマンドでコマンドが見つかりませんといわれます
環境構築でもかなりむずかしいですね
0132デフォルトの名無しさん
垢版 |
2017/01/31(火) 22:31:32.25ID:XX2qe95y
opensourceCOBOLがwindows対応してなかったっけ?
俺ならCENTOSに入れちゃうから、windows+エミュレータは良くわからん
0133デフォルトの名無しさん
垢版 |
2017/02/02(木) 15:46:21.71ID:VBIg+0Ly
VisualStudioにも対応してたけど、一個前バージョンは酷かった
色々間違ってて手直ししないとビルド通らなかった
0134デフォルトの名無しさん
垢版 |
2017/02/06(月) 13:28:58.58ID:LDGcqjUw
1) VMWareやVirtualBoxなどの仮想環境用ソフトをWindows環境に入れる
2) 64bit日本語環境版Ubuntuを↑にisoイメージからインストールする(他と違って自力で設定する必要がある箇所がほとんどないので)
ttp://cdimage.ubuntulinux.jp/releases/16.04/ubuntu-ja-16.04-desktop-amd64.iso
3) 仮想環境でUbuntuを立ち上げて、端末からsudo apt-get updateとsudo apt-get upgradeを実行して完了を待つ
(最初はランチャーに端末が表示されてないので、左上にあるアイコンからshellで検索する必要あり)
4) ウェブブラウザでopensource COBOL v1.5.1J [UTF-8, Source Package, include vbisam (extend OSSCons patch)]をダウンロード(githubの方には手を出さない)
5) 不足しているパッケージを追加インストール、端末からsudo apt-get install libgmp-dev libncurses5-dev libncursesw5-dev autoconfする
6) ファイラから(ランチャーの上から二番目)ダウンロードを選び、opensource-cobol-1.5.1J-utf8.tar.gzをダブルクリックホームへ展開する
7) 端末からcd open*して移動後にcd vbisam、sudo chmod 777 configure、./configure、make、sudo make install、cd ..の順で実行
8) sed -e "s/lncurses/lncursesw/g" configure > configure2、sudo chmod 777 configure2、./configure2 --with-vbisam --enable-utf8の順に実行
9) make、sudo make install、sudo ldconfig、make checkを順に実行、エラーが出て無けりゃCOBOL環境構築完了

仮想環境の機能使って共有フォルダ設定してやれば、Windows環境で使い慣れたテキストエディタを使って作業できる
普段Windowsで作業する人も学習用にLinux環境用意オススメ(作業環境壊して泣かないために)
0137デフォルトの名無しさん
垢版 |
2017/07/02(日) 02:23:04.72ID:VN9W5bJ/
学習用途ならLinuxのクソ環境をいじくらなくてもいいようにUbuntu選ぶのが正解
0142デフォルトの名無しさん
垢版 |
2017/11/17(金) 16:18:34.95ID:tQLykjgm
COBOL資産をJava(C#)に移行しようとしてプロジェクト頓挫
金融、自治体であちがちな事件
0143デフォルトの名無しさん
垢版 |
2017/11/18(土) 22:43:59.62ID:Mkyxv3PW
フロントをJava んでCOBOLで受けて処理、DBはOracle
OSはUNIX
以前やった某金融系のお仕事

>>142もよくありがちなんだろうけど、どこに原因があるんだろかね
COBOLに未来はなさそうだから他言語に移したいってのは判るけど
0147デフォルトの名無しさん
垢版 |
2018/02/21(水) 18:40:59.94ID:2qIuM6xQ
>>143
フロントエンドはJavaで無くてもVB.netでも十分でしょ
APサーバー、DBサーバーをUNIX(Linux)にするか、Windowsサーバーにするかはアレだけど
0149デフォルトの名無しさん
垢版 |
2018/02/21(水) 19:03:31.34ID:LoH3KZF5
BerkeleyDBでトラキャンとか出来るらしいけど、GNU-COBOLの実装どうなってんだろ?
0151デフォルトの名無しさん
垢版 |
2018/03/02(金) 15:40:36.57ID:kun9P1d+
PostgreSQL+Linuxサーバー+Apache

Open-COBOLでバッチ処理

UIはPHPかPythonかRubyかPerl

これで無料
0152デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:59:29.93ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

RBHX3
0153デフォルトの名無しさん
垢版 |
2018/07/05(木) 00:54:52.37ID:RfoszcD2
O82
0154デフォルトの名無しさん
垢版 |
2018/08/09(木) 18:06:40.92ID:WuBnCjxh
>>150,151
今後DB部分はMariaDBかPostgreSQLに移行するだろう
JavaはPHP、Python、JavaScriptに移行
バッチはOpenCOBOLでOKだが、GUI関連をPHPとかからCOBOLに引き継ぎ出来るか、だな
0155デフォルトの名無しさん
垢版 |
2018/08/11(土) 18:01:28.87ID:RChMnkgH
PHP、Python、Ruby、JavaScript、Perlとかのスクリプト系言語で金額計算が誤差無く出来る言語が出ない限りCOBOLの代わりにはならない
Java、C#もライブラリで何とか対応してるだけ
金額計算だけで見ればVB.NETでも変わらん
0157デフォルトの名無しさん
垢版 |
2018/08/15(水) 00:51:17.14ID:xwISYCtn
>>151
長崎県庁とかOpenCOBOLでDBアクセス部分はPerl(外部サブルーチン)→MySQLだと
UI部分をPerlでやってるかOpenCOBOLでUI作ってるみたいね
0160デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:44:48.09ID:cvxUQ6/s
そもそもOSに依存する漢字を変数名に使用する時点でおかしいわな
システム移行(マイグレーション)する場合に足かせになる
0161デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:51:46.04ID:HhSOSIoP
>>159
やっぱり使えないのか。ありがとう。

>>160
まさにそのマイグレーション案件なんだわ
0163デフォルトの名無しさん
垢版 |
2018/08/22(水) 21:44:33.88ID:cvxUQ6/s
>>162
オンライン部分はOpenCOBOLじゃないだろ
OpenCOBOLは基本的にバッチ処理メイン
UI部分は他の言語で実装してんじゃね
>>161
変数名はJavaみたいにアルファベットでローマ字読みぐらいにするしか無いと思うぞ
0164デフォルトの名無しさん
垢版 |
2018/08/22(水) 21:48:39.57ID:cvxUQ6/s
>>161
こういう例は元々、移行元がOS依存の漢字をシステムオープン化する事想定せず運用してたツケだろうな
それなのにオープン化するってプロジェクトそのものが失敗し易い所からスタートしてる事になる
0166デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:11:19.76ID:vF3JdWVP
>>162
>>163
オンラインもバッチもCOBOLのまま動かすんだよ。オンラインはjavaからCOBOLを動かす。163が言う通り変数名は辞書作って変換するしかない。

>>164
日本のCOBOLが気を利かせすぎなんだよ。
0167デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:25:08.25ID:cvxUQ6/s
>>166
>>JavaからCOBOL
出た!!
UI自体はJavaで裏でOpenCOBOL稼働か
Javaのライセンスうんぬんはプロジェクトリーダーは理解してんかな?
0168デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:52:29.57ID:e5DhnedG
JAVA+opencobolなのね
東京システムハウスもそんな感じでやってたな
あと困るのは、データベースへのアクセスだろな
既存がREAD WRITEインターフェースでデータベースアクセスしてるなら、RDBにした場合、アクセスサブ作んなきゃならんので、大変そう
0169デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:59:52.03ID:cvxUQ6/s
RDBアクセス部分はJavaで専用オブジェクトクラス作成だろうな
で、OpenCOBOLからも呼び出してRDBアクセス処理を任せるパターン
0170デフォルトの名無しさん
垢版 |
2018/08/22(水) 23:15:16.24ID:e5DhnedG
呼び出すとCALLインターフェース使うってこと?
READWRITEからCALLにCode直すのが面倒じゃない?
0171デフォルトの名無しさん
垢版 |
2018/08/22(水) 23:24:23.16ID:cvxUQ6/s
>>170
元々の汎用機でのCOBOLの実装はREAD、WRITEでSAMファイルやVSAMファイルを扱ってるが、この部分は汎用機での固有コーディングなのよ
でOpenCOBOLにするとCOBOLの実装の中でSQL文を組み立ててRDBに対して実行するか、RDBにアクセスするオブジェクトをCALLしてデータ貰うか、OpenCOBOLの固有コーディングになる
どの道、汎用機でのCOBOLコーディングはそのまま使えないので、RDBアクセス部分はJava使う方がOracle使おうがSQL Server使おうがMySQL使おうがMariaDB使おうがPostgreSQL使おうが、Java側で対処する様にしとけば、OpenCOBOL側は何のRDB使ってるか意識せず実装出来る
0172デフォルトの名無しさん
垢版 |
2018/08/23(木) 00:56:38.23ID:KAnCCL4p
Java(OpenJDK?)からJDBC使ってRDBにアクセスするロジックを作っておく
OpenCOBOLからは、それを利用する様にするだけ
0173デフォルトの名無しさん
垢版 |
2018/08/23(木) 01:40:51.91ID:KAnCCL4p
OpenCOBOL→GnuCOBOLになってから大部進化してんだな
https://www.softantenna.com/wp/software/gnucobol-2-2/
>>166
オンラインもOpenCOBOL(GnuCOBOL)で動かすとしてるが、汎用機でのプログラムはそのまま使えないし、汎用機のUIとオープンシステムのUIなんて同じには出来ない
マイグレーション出来ると思ってるんかね?
0174デフォルトの名無しさん
垢版 |
2018/08/23(木) 12:23:17.24ID:nYRc3RV5
BerkeleyDBならREADWRITEインターフェースで、そのままアクセス可能だけどね
オンラインだと、ポスグレなどのRDBにしたほうが、後々便利なんだろうなぁ

ただ、アクセス部分を汎用的に作れないのがイタイ
個別に作るのが面倒なんだよねぇ

レコード定義から、COBOL+SQLでのアクセスサブルーチンを生成するツールみたいのを
公開してくれたらありがたいんだけど
0175デフォルトの名無しさん
垢版 |
2018/08/23(木) 12:26:30.63ID:nYRc3RV5
DB連携ツール openCOBOL ESQLを使えば、CURSOR制御で順次アクセスはすぐ作れるけど、
エラー制御とか何処まで必要か分からんのよね
0176デフォルトの名無しさん
垢版 |
2018/08/23(木) 15:44:39.30ID:RbMgRth3
>>174,175
>>BerkeleyDB

実用事例が少ないDBは採用されない

>>レコード定義から、COBOL+SQLでのアクセスサブルーチンを生成するツールみたいのを公開してくれたらありがたいんだけど

そこの部分をJavaで作っとけって話
0177デフォルトの名無しさん
垢版 |
2018/08/23(木) 16:18:49.02ID:nYRc3RV5
>>176
BerkeleyDBはISAM使った場合の、gnucobol標準サポートだけどね
直接アクセスできるツールやユーティリティが無いからなぁ

javaで作るとどんな感じになるのか、気になるな

COBOLプログラムの
READ FILE1 INVALID KEY
をCALL に変えるんだよね?
0178デフォルトの名無しさん
垢版 |
2018/08/23(木) 17:26:58.67ID:RbMgRth3
>>177
RDBアクセス部分はGnuCOBOLで外部モジュール化は出来ると思うが、JavaでOracleやMySQL、PostgreSQLにJDBC経由でアクセスする例は過去から事例が多い
そのノウハウ持ってるSierは他の案件で開発した実装事例を持って来るだけだと思う
後はGnuCOBOLからCALLして呼び出すメソッドを定義付けすれば良いだけかと
まあ、書き込み有ったヤツのプロジェクトがどういう方針か不明なので何とも言えんが
0182デフォルトの名無しさん
垢版 |
2018/08/25(土) 10:30:23.91ID:8URk/odh
>>181
オンラインの画面制御ミドルをjavaで動かすんじゃないか?

富士通なら、表示ファイルのDCFILEか、メッセージファイル作ってCOBOLに渡せばいい

うちのシステムもマイグレしたいが、リスク取れないから、次もXSP動作機構で動かすんだろなぁ
0183デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:06:37.76ID:1rD3/Svv
>>182
なるほどね
画面制御をJava、PHP、Perl、Ruby、Python、JavaScript色々選べそうだが
画面制御JavaでOpenJDKで収まるんかな
でないとライセンス発生する
0186デフォルトの名無しさん
垢版 |
2018/09/05(水) 14:55:09.56ID:njSWZAvd
273 デフォルトの名無しさん [sage] 2018/09/04(火) 08:29:51.03 ID:TKsJiWYY
信用の問題だろ
OracleがOpenJDKを潰そうと思えば直接的な法的手段を用いるまでもない
Oracleはいつでもディストリビュータに対するTCKの提供を停止することができ、それにより既にGPL化で配布されたOpenJDKも即座に破綻する
OracleはTCKのテストケースに対して著作権を有しており、これを侵害することなく互換テストを再構築することは事実上不可能だ
これが現在想定される最悪のシナリオだが、Oracleならやりかねないと思われてしまったこと自体が問題
0187デフォルトの名無しさん
垢版 |
2018/09/05(水) 15:25:37.29ID:NMjTwTd+
ライセンスは過去に遡って(既にライセンスを受けたライセンシーに対して)変更出来るものじゃないと思うけど
0191デフォルトの名無しさん
垢版 |
2018/09/10(月) 09:39:32.55ID:NlM4X/bY
いままで無償で使用できたのが異常なだけで
値段も高くないし普通にOracleに金払えば済む話じゃん
0193デフォルトの名無しさん
垢版 |
2018/09/14(金) 11:43:16.81ID:FuCQtUp3
30代のCOBOLのSEに

君のFILLERを埋めるよ?

と言ったら爆笑されて,
食事の約束こぎ着けた
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況