トップページ⇒tech
1001コメント319KB

COBOLなら、オレに聞け!<2>

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
おちこぼらーさんには申し訳ないが勝手に1000まで使わせてもらっちゃいましたので
PART2をたてときます

仕事だから仕方なくCOBOLをやってる人
本気でやってる人
いろいろいるとおもいますがオッサンたちで役に立つならお手伝いしますということで・・・
0655デフォルトの名無しさんNGNG
>>654
EXEC SQL
でSQL関連の部分を書き始めるんだよ〜
COBOLとは完全に違います
埋め込みSQLならCOBOLでもCでもそうだよ〜

コンパイルするときはその部分はプリコンパイルされて、その後COBOLコンパイラに渡されます

http://www.cobol.gr.jp/knowledge/technical/tec007.html
0656デフォルトの名無しさんNGNG
>>570
↓の第21章見れ
http://61.122.77.34/PowerCobol97/DOC/COBOL/Usr/index.htm
0657デフォルトの名無しさんNGNG
YPS/COBOLのYPSの正式名称って何ですか?
0658デフォルトの名無しさんNGNG
>>657
このページの一番下を見てみな
http://journal.fujitsu.com/yogob.html
YAC IIは下記を参照
http://globalserver.fujitsu.com/jp/contents/en/y.html

少し自分で調べような!
0659570NGNG
>>654,655
有難うございます。
教えていただいたページや内容をみて勉強してみます。
また、何かありましたらお願いします。
0660デフォルトの名無しさんNGNG
>>653の煽りが低能すぎて相手にもされていないのが笑える。みんな大人だからなあ
0661デフォルトの名無しさんNGNG
>>658

あり
0662デフォルトの名無しさんNGNG
>>660
そして君が放置を破った・・・
0663デフォルトの名無しさんNGNG
スレは祭りを望んでいない
0664ageNGNG
>>648
呼ぶ側・呼ばれる側両方にLINKAGE SECTIONが要るのか・・・
俺が使ってるのは呼ばれる側しか書かないけど、
もしかして、こっちの方がおかしい?
0665デフォルトの名無しさんNGNG
この板の COBOL マンセーの先輩たちの意見はいろんな意味で参考になっています。
自分は今まで C,VC(C++),Java,VB類(VB,VBS,VBA),XML,UML,HTML,perl,PHP,.NET などなど
いろんな言語での業務を経験し、最近はデザパタ、リファクタリングなどを用い
オブジェクト指向設計での開発や XP などでのマネージメントを中心に仕事しています。

そしてなぜか来週から COBOL を触ることになりました(初めて触ります)。。。

こんな自分ですが大丈夫でしょうか?
COBOL って言語体系で考えると難易度は高いのですか?
今の自分のオブジェクト脳で COBOL を触るのは不安がありまつ。
COBOL のことはな〜んにもしらないのでマジ不安です。
おすすめ COBOL 教則本とかありまつか?
0666デフォルトの名無しさんNGNG
>>664
呼び出し側もさらに上位から呼び出されるのなら要る
単に呼ぶだけなら呼ばれる側だけでよい

>>665
マネージメントする人が言語に左右されるのかがよくわからんな
言語に執着するあたりなんだか変だぞ
しかも並べてる言語もなんだか変だぞ

はっきり言ってCOBOLは中学1年生程度の英語の試験で30点取れるレベル
なら余裕でコーディングはできる(お馬鹿なプログラムでも動くし)
0667664NGNG
>>666
そうだよね、安心したよ。
ありがとう。
>>648の質問は、呼ぶ側が更に呼ばれるという例ではなくて、
単に呼ばれる側のメモリ参照の質問に見えたのに、
誰も両方にLINKAGE SECTIONが書かれている事に触れてなかったから、
俺の処理系がおかしいのかなと思って。
何せ俺が今使ってる処理系は異端児だから。
0668648NGNG
>>667
確かに呼ぶ側では必要ないですね。
いつもコピー句のコピペで正確な言語仕様が曖昧になってました。
0669デフォルトの名無しさんNGNG
>>665
「VC(C++)」 って・・・。C++は解りませんがIDEとしてのVisualC++は使えますって事?
ところで .NET って言語じゃないよね。

世の中のプログラミング言語にはCobol流(北斗)とFortran流(南斗)があり、
Cobol流は一子相伝だが (SQLはCobol流だろうか?)
Fortran流は陽拳ゆえCやらJavaやらシェルスクリプトやら108の流派に分裂している。

そういやCとJavaやったあとにCobol覚えたときゃあ、カルチャーショックを受けたなあ・・・
文法にも、あの変数の扱い方にも。

再帰とローカル変数をサポートするサブルーチン作れないし。
A領域? B領域?
タイプ量多いよ!!
下手にピリオド打つと大変だよ!

しかしあの構造体の扱いは人類の誇れる叡智だね。


そうそう、Cobolの入門書は
ttp://www.amazon.co.jp/exec/obidos/ASIN/4877830146/250-6395244-1177829
くらいしかないと思う。
0670デフォルトの名無しさんNGNG
>>669
SQLはPL/I流だ
COBOLとFortranのあいのこといわれている幻の言語の
0671デフォルトの名無しさんNGNG
PL/I って見た目Cっぽいと思う。
使ったことないけど。
インデントとかはCobolっぽいが
0672デフォルトの名無しさんNGNG
>>671
はげどう

10年ぐらい前にPL/Iの職場からCの職場に移った奴の先輩との会話を思い出したよ

先輩「今までと違うだろ?どこに一番差を感じる?」
後輩「大文字と小文字です」
0673デフォルトの名無しさんNGNG
>>660
あまりにアタリマエの事だからね。

王様は裸だ!
0674デフォルトの名無しさんNGNG
エリアをXタイプできってあって、その値をIF '○○'とコーテーションをつけずに
IF ○○ときいた場合って実害あるのでしょうか?
とりあえず判定はできているのですが、、、
0675デフォルトの名無しさんNGNG
COBOLのコンパイラを無料で
http://science.2ch.net/test/read.cgi/infosys/983290914/l50
0676デフォルトの名無しさんNGNG
>>674
判定できてるならいいんだろうが、普通のコンパイラでは
エラーになると思うが・・・。
チョンチョンつけるのが基本。
0677デフォルトの名無しさんNGNG
15年秋の情報処理試験のCOBOLの問題の難易度は高いのでしょうかそれとも普通なのでしょうか
0678デフォルトの名無しさんNGNG
どんな問題なのかわからんとなんともいえないだろ

もっとも基本情報だったら難易度が高いなんてありえないんじゃないか?
基本なんだから
0679デフォルトの名無しさんNGNG
教えてください。

COBOLで全角項目に半角が混在してるかどうかって
判定できますか?
>339にあるように無理なんでしょうか?
0680デフォルトの名無しさんNGNG
COBOLらーが転職してきたのですが
ぱっくもばいなりーも知らないそうです
最近のCOBOLはぞーんOnlyなのですか?
0681デフォルトの名無しさんNGNG
んなこたーない。
0682デフォルトの名無しさんNGNG
>>679
IBMのCOBOLだとクラステストが可能。
IF A DBCS とか IF A KANJI など
NUMERICクラステストなどと同じ

他社のものでも同様のものはあるんじゃないか?
マニュアル見た?
0683デフォルトの名無しさんNGNG
Cを知っているCOBOLerなら相当優秀と言ってみる。
0684デフォルトの名無しさんNGNG
>>683
そうか?
そこらじゅうにいるだろ
0685デフォルトの名無しさんNGNG
いや、居ない。
CもCOBOLも知っている人なら、そこらじゅうにいるけど。
0686679NGNG
>>682
レスどうもです。

クラステストですか・・・初めて聞きました(汗
マニュアルもっかい見てみます。

ちなみにサーバーエクスプレスとか言う
マイクロソフト(だったと思う)のCOBOLです。
0687デフォルトの名無しさんNGNG
>>685
いるよ

>>686
マイクロフォーカスじゃないのか?
0688677NGNG
>>678 勉強したら簡単でした
ありがとうございます。
0689デフォルトの名無しさんNGNG
わふ〜ん。
今度PL/Iすることになっちゃった。(´・ω・`)ショボーン
PL/Iスレがないのでここで聞かせてください。
入門書とか詳しいサイトないですか?cobolは経験があるのですが・…。
ググったんですがここ↓しかみつけられませんでした。
ttp://www5.airnet.ne.jp/yukicyan/pli/pli.html
0690デフォルトの名無しさんNGNG
>>689
懐かしい、学生時代に習ったけど^^
大変だね^^
マニュアルがあれば簡単
0691デフォルトの名無しさんNGNG
入門書? あきらめろ。
web? あきらめろ。
紙のマニュアルとBookManagerが藻前を待っている
0692デフォルトの名無しさんNGNG
>>689
PL/IはCOBOLよりCと似てると思います
COBOLでできてPL/Iでできないことはないはず
文法の文化の違いはものすごいです(COBOLが特別ともいえる)
PL/IはCOBOLのようなわかりやすさ(データの型の定義とか)と
記述のしやすさ(COBOLではMOVE A TO B が 単に B = A)を
あわせもった慣れるととても使いやすい言語です。しかも、アセンブラ並にほぼ何でもできます。
この言語をしゃぶりつくすことなど実務ではおそらくないのでないかと思われるぐらいすごい言語です。
あなたが見つけたサイトはそこそこ入門としてはよいかと思います。
私がかつて参考書として購入したものは技術評論社の上下巻のものですが
もしかしたら絶版なんですかね?

P.S.似たようなことをしたいときに微妙にCOBOLと違うところがあります
たとえばCOBOLでELSEを省略した場合処理をしないことになりますが
PL/IでELSEを省略すると異常終了したような?(記憶が遠くてあいまい)
0693デフォルトの名無しさんNGNG
現在活躍されている方に、お聞きしたいのですが。
入力画面作成は、良くあるんですか?
 キャラクタユーザーインターフェースなんですか?
入力項目での入力コード参照は、良くあるんですか?
 入力コード参照プログラム(マスタ一覧参照画面)を、作成するんですか?
0694デフォルトの名無しさんNGNG
いまどき画面をCOBOLで直にガリガリなんてするかねえ
0695デフォルトの名無しさんNGNG
>>694
と、おっしゃると集計とか印刷の処理が多いと?
0696デフォルトの名無しさんNGNG
画面処理は直接コード書かないでツール使う
0697689NGNG
>>692
レスどうもです。
大型書店にいっても参考書がありませんでした。(;´Д⊂)
実務に入った時にマニュアルみて憶えます。
>この言語をしゃぶりつくすことなど実務ではおそらくないのでないかと思われるぐらいすごい言語です。
事務処理系の言語かなと勝手なイメージ持っていたのですがどうやら違うようですね。
ちょっとやる気が出てきました!サンクスです。
0698デフォルトの名無しさんNGNG
>>693
MS-DOS3.3のMFCOBOLで画面定義しました。
0699デフォルトの名無しさんNGNG
PL/Iは事務処理用のCOBOLと技術計算用のFortranを一緒くたにしようとしたもんだから。
機能を詰め込みすぎて言語仕様が肥大化し、理解不能に。
殆どのプログラマはそのうちのわずかな機能しか使っていない。
Adaと並ぶ失敗作。
使うところだけ覚えればいいんじゃない?


やっぱりCみたいに自分じゃコンソールへの出力すらできないくらいの言語のが
流行るんだろう。Javaも標準ライブラリが豊富なだけで言語仕様じたいはそんなでもないし。
0700デフォルトの名無しさんNGNG
Perlは?
0701デフォルトの名無しさんNGNG
>>693
>入力画面作成は、良くあるんですか?
 たまに
>キャラクタユーザーインターフェースなんですか?
 はい、そうです
>入力項目での入力コード参照は、良くあるんですか?
 ユーザーががね
>入力コード参照プログラム(マスタ一覧参照画面)を、作成するんですか?
 一覧表を配ったり、一覧が出てる画面を作ったり

メインフレームのお話です
ちなみにCOBOLで書いてるわけじゃありません。
IBMのMFにIMSっていう製品があるんですが、そいつのMFSってやつを使ってます。
0702デフォルトの名無しさんNGNG
CICSならSDFII
0703デフォルトの名無しさんNGNG
BMSぐらい手で書け
0704デフォルトの名無しさんNGNG
アウトのファイルのレコードレングスを可変にする事って
出来るんでしょうか?
0705デフォルトの名無しさんNGNG
>>704
できます
0706デフォルトの名無しさんNGNG
COBOLerなSEとボラクラーな漏れが仲良くやる方法ってありますか?
0707デフォルトの名無しさんNGNG
>>705
どうやるんですか?
LABEL RECORD IS STANDARDで宣言するとレコードレングスって
固定だし。
配列も変数で数を可変に出来ないから無理そう。

どんなデータでも取り込めて、jclのパラメータでアウトの定義が
出来るようにする方法が有るんでしょうか?
0708デフォルトの名無しさんNGNG
>>707
どこのCOBOLを使ってるのか知らんが・・・

http://www.jbooksrv.yamato.jp.ibm.com/cgi-bin/master!request=menu!parms=!xu=SK888002/BOOKS/CZ2AS101/5.2.5.2

JCLでブロックサイズを決めるにはBLOCK CONTAINS 0ってかけばいいんじゃないか?

マニュアル無いのか?
0709デフォルトの名無しさんNGNG
>>707
忘れてた
配列の可変も可能だよ
http://www.jbooksrv.yamato.jp.ibm.com/cgi-bin/master!request=menu!parms=!xu=SK888002/BOOKS/CZ2AS101/5.3.10.4
0710デフォルトの名無しさんNGNG
Pro*Cobol で
メインで使用しているデータベースとは別に
他の異なるデータベースに接続して
テーブルから値を参照したいんだけど、
これってできる?

DBは、両方Oracleね。
0711710NGNG
自己解決しました。
Create Database Link でリンク張ったらできました…
が、これあんまり使わない方がいい?

最近のSQLリファレンスに乗ってないんだが…
ちなみに、Oracle8iでやったんだが、9iだと動かん?
0712PG見習いNGNG
ちょっと質問させてください。
COBOLプログラムでOracleのLONG型データを操作したいのですが、
コピー句の記述はDBの定義が以下の場合、

列名   バイト数   型
KEY     5    CHAR
DATA1    5    CHAR
DATA2    -    LONG

01 DB.
03 KEY PIC X(05).
03 DATA1 PIC X(05).
03 DATA2 PIC S9(05) COMP-5.

であってますか?

それから、そのデータはCHARなどと同じように例えば

EXEC SQL
SELECT (DATA1,DATA2)
INTO (:DB.DATA1,:DB.DATA2)
FROM DB
WHERE KEY = :DB.KEY
END-EXEC.

という書き方で操作できますか?
0713デフォルトの名無しさんNGNG
IT業界にデザインパターンを広めよう!

C言語を使ってかなり苦労したのでデザインパターンを
その苦労を最小限におさえるために
多くのプログラマに使って欲しいと思うことがある。

一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように

デザインパターンを使うことがプログラマの習慣、常識になってほしい。

なんとか、デザインパターン文化を押し広げられたら・・・。
0714デフォルトの名無しさんNGNG
Oracleのことはあまりよく知りませんが、
LONG型は長い文字列(バイナリ)を扱うためのもののような。
S9(09)はNUMBER(5)だと思います。
0715デフォルトの名無しさんNGNG
> 文字列(バイナリ)
何かの冗談ですか?
0716デフォルトの名無しさんNGNG
お前ら、COBOL2000ってどうよ?

やってるのか?
0717すみません。。NGNG
アウトファイルのある項目Aが

項目A pic 9(10) packed-decimal.

で、ここに 数値の ”90”をセットし、このアウトファイルを
次処理のインプットとして使用し、項目Aを参照すると、
2020....などになってしまいます。(”0000000090"が目的です)

このファイルを開くと”タブ文字”になっていました。
なぜですかね?どう対処すればよろしいでしょうか。

ちなみに
パワーコボルです。普通のテキストファイルを作るのが目的です。

どうか、ご教授おねがいします。
0718デフォルトの名無しさんNGNG
情報少ない
0719すみません。。NGNG
やっぱりだめか、、、
0720デフォルトの名無しさんNGNG
情報少ないから何とも言えないけど、packed-decimalの意味分かってる?
0721デフォルトの名無しさんNGNG
COBOL2000を使っている香具師はおらんのか
0722デフォルトの名無しさんNGNG
>>717
少ない情報と知らないパワーコボルなのでなんともいえないが
普通のテキストってことは文字列にしなきゃだめじゃん
packed-decimalってパック10進数だよ。
せめてゾーンじゃないとテキストにはならんだろう
0723デフォルトの名無しさんNGNG
文字と数字を同一視するためにはアンパックにしなきゃだめだよ。
0724デフォルトの名無しさんNGNG
>717
なんかよくわからんのだが、出力の
項目Aは、pic 9(10) packed-decimal
と定義しないとだめなのか?
それだったら、不可能だと思うぞ…

個人的には、
01 項目A.
03 項目A-数字 pic 9(10).
とかってすれば問題解決と思うんだが…
0725デフォルトの名無しさんNGNG
>>724
その定義で動くはず、
単にpacked-decimalをはずすだけでも正しく動作すると思われ。
0726デフォルトの名無しさんNGNG
文字列にするのが一番いいだろ
PIC 9999999999 とか
PIC ---------9 とか
テキストって言ってるんだし。
0727デフォルトの名無しさんNGNG
VOS3でCobolをプログラミングしてる物ですが、最先端のC言語に移りたいと思っています。
かってが違いわかりません。すばやく移行するにはどうしたら良いのでしょうか。
0728デフォルトの名無しさんNGNG
>>727
レガシーモードで使えば?
0729どっちにしろCは最先端じゃ無いような...NGNG
>>727
うーん cobolで組んだアプリをCに書き換えたいのか
     Cを勉強がてら修得したいのか
     cobolコンパイラは作ったから次はCコンパイラを作りたいのか いろいろとれるね
0730デフォルトの名無しさんNGNG
>>727
すばやく勉強しる
0731727NGNG
すいません。嘘をついとりました・・・
昔少しcobolプログラマーをしていた事は事実なのですが。
久しぶりに趣味でプログラムを始めようとして、C言語の勉強を開始したのですが
あまりにも違う。。。元コボラーが馴染める言語は無いのでしょうか。
答えてくれた皆様ありがとう。
0732デフォルトの名無しさんNGNG
>>731
COBOLはかなり独特な面があるからねぇ。
Cは確かに敷居が高いので、
とりあえずVisulBASICでもやってみたら。
0733デフォルトの名無しさんNGNG
>731
Perl で
0734デフォルトの名無しさんNGNG
>>731
Delphiなんていかがでしょうか?
非常に簡単に習得できますし、結構見た目のいいWinアプリを作ることができます。
0735デフォルトの名無しさんNGNG
COBOLプログラミングが5年ほどブランクがありもう一度やってみたいのですが、何か本、サイトなどご紹介いただければ幸いです。
0736デフォルトの名無しさんNGNG
COBOL85によるACOS4上で稼動しているシステム.......
0737デフォルトの名無しさんNGNG
>>735
もう一度『COBOLを』やってみたいのですか?
もう一度『プログラミングを』やってみたいのですか?

もう一度COBOLをやってみたいのなら汎用機系のPGになるしかないんじゃないかしら?
プログラミングをやりたいだけならVBでもVCでもPerlでもDelphiでもなんでもいいからやってみたら?
0738デフォルトの名無しさんNGNG
>>737
なるほどそうですね。で、Javaをやりながら、4言語ほどおさらいをしています。
ありがとう。
0739デフォルトの名無しさんNGNG
.NetCOBOLの本、これってどうですか?誰か読んだかたいます?
ttp://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0397-2
0740デフォルトの名無しさんNGNG
COBOLを独学で学びたいのですが、なにかアドバイスをして下さい。
初学者です。
0741デフォルトの名無しさんNGNG
会社で仕方なく使ってます

そこで質問なのですが
Xタイプの文字列の中に空白が所々混じってて(A△BC△D)
こいつを左詰にしたいときって(ABCD△△)
なにか便利な命令文ありませんか?

どなたか御指南のほどお願いします。
0742デフォルトの名無しさんNGNG
>>741
「貴様、明日の朝までに全部修正しとけ」
0743デフォルトの名無しさんNGNG
>>741
そんな命令有ったかな?有ったとしても拡張命令だな。
互換性の為にも使わない方がよいね。
共通モジュール化して、CALL分で呼んだほうがよいね。
0744デフォルトの名無しさんNGNG
>>743
レスどうもです

やっぱないっすか〜
素直にモジュール作ります
0745デフォルトの名無しさんNGNG
保守
0746今日は試験NGNG
今日情報処理検定の試験があって、用語は大体覚えたんですけど
COBOLがいまいちわかりません、ここは覚えておくとイイ!!ってとこ
あったら教えてください。
0747デフォルトの名無しさんNGNG
>746
日本語。あとsage
0748今日は試験NGNG
そういわずに出題率高いのとか教えてくださいよ
0749デフォルトの名無しさんNGNG
無理しないで、自分に正直に、気楽にやれよ
0750デフォルトの名無しさんNGNG
とりあえずMOVE命令。
0751デフォルトの名無しさんNGNG
>>746
今日って事は全商か?

何級とか書かないと範囲全然違いますよ。と
0752今日は試験NGNG
なんか思ってたより簡単でした。トレースが途中で意味不明になったけど
0753デフォルトの名無しさんNGNG
cobol使ってます。
(1234) → (@@@@)
(12△△) → (@@△△)
(123△) → (@△△△)

というように、空白を"@"に置き換え、
空白以外を空白に置き換える処理をする場合、
inspectのreplacingを使って置き換える方法って無い
でしょうか?
今のところtallyingで空白をカウントしてその数分
"@"をmoveするって処理にしていますが、あまり効率が良いとは
言えないような気がします。
何か他に良い方法が有ったら教えてほしいのですが・・・
0754デフォルトの名無しさんNGNG
プッ
■ このスレッドは過去ログ倉庫に格納されています