🧩今日の学び
・READは新しい処理ではなく、ACCEPTの代わりにファイルから入力を受けるための仕組みとして考えればよい
・手入力でもファイル入力でも「読む→処理→繰り返す」という流れ自体は変わらないと理解できる
・COBOLでは入力方法が変わると、OPENとCLOSEという責任が追加され、処理が“作業”から“仕組み”へ進化する
なるお)はー疲れましたねー。もううっとりコード書きすぎて肩がごりんごりんですよ。オリンピックですよ。
係長)なんでオリンピックなんだよ…
な)だって、うっとりコードは日本代表級ですしね!
係)ごりんごりんから来てるんじゃないのかよ!
そもそも、うっとりコードって何だよ…
な)じゃ、おやつの時間ってことで甘味屋さんにでもいきますか!ダンゴにたくあんとかたまらないですよ!
係)糖と塩を取りすぎだっての!
いいから、続けるぞ!今までは入力してきた数字をSUMをしてきたが、今度はデータを読み込んで、それを操作してみるぞ。
…ここからが、COBOLの本番だ。
ここからがCOBOLの本番
な)な、なんすか、その「汚ねー焼肉屋かと思って入って、会計したら高級焼肉屋だった」パターンは!
係)いや…そんなパターンあるか…?
いや、いいんだって、そんなことはほんと!
まず、簡単なのでいいからデータ作れ。個別売上の集計でいい。
な)いや閑話休題にしては、唐突すぎません!?
係)どっちが本筋だと思ってんだよ!
良いから、5つの売上表つくってみろ。売上年月日と売上品名と売上額でいいぞ。
な)ほうほう。
日付,商品名,単価 2025-12-31,干し芋,2500 2026-01-01,牛丼2つ,900 2026-01-01,カレー8人前,1500 2026-01-02,牛丼2つ,900 2026-01-03,干し芋,2500
こんな感じすかねー。
係)なんで、お前の食べたものなんだよ…。
な)ぱっと思い出したらこんなところかなーと
係)しかも年末年始って…、干し芋どんだけ食ってんだよ!
まぁいいや、csvで保存しておけ…。
な)あいー。保存っと。
係)よし、今度はそれを読むぞ。
な)え?朗読会?
係)その言わなきゃ気がすまない精神何なんだよ⋯。
さっきはお前が手で入力してたが、実務でそんなことやってたら日が暮れるどころか年が明ける。
な)めでたいですねーこのデータのように
係)うるさいからノッてくるな!
な)えー
係)いいか、ファイルから読むってことだよ。さっき作ったそのCSVからな。
COBOLにとってファイルは「入力装置」だ。キーボードの代わりだと思えばいい。
な)ほーほー
手入力から「ファイル入力」へ進化する
係)手入力 → ファイル入力に進化したってことだ。
な)おー!よりうっとりできそう!
係)……で、やることは単純だ。
な)え、地獄じゃないすか…お身体が心配です…
係)…ファイルを開いて、1行ずつ読んでいく。
な)ほ?
係)お前がさっきやってたやつだ。
な)PERFORM VARYINGでルーピングすね!
係)まあそうなんだが、ACCEPTの代わりに、READを使うんだ。
な)READ…すか?
処理の流れは変わらない
係)よし、ここまでの流れを整理してみろ。
な)はーい
えと、ルーピングだから、データは一つずつ読むってことにはなりますよねー
ファイルを開く ↓ 1行読む ↓ 終わりじゃなければ処理 ↓ 次読む ↓ ルーピング
ってとこっすか?
係)「入力」のところ変わっただけで、やってることは大してかわらんだろ。
な)いや、二卵性双生児なみに違ってますがな。
係)中身は同じなのに急に難しく見えてるだけだ!いいな!
な)あい…
係)で、最初にやることは1つだ。ファイルを開くだ。
な)オープンザセサミっすか。
オレ、セサミをサラミだと思って、そら忘れないよなーピザだもんなーって思ってましたよ。
係)なんだよその取り違えはよ…。
まずはOPEN。
な)おー
係)そして読むだからREAD。
な)おおー日本語読み!
係)うるっさいな。そして最後にCLOSE。
な)ちゃんと閉めるんすね。係長のわんこはドア開けます?
係)開けたあと、ちゃんと鼻や手で押して閉めるぞ。
な)すげえ!!
おむすび
係)まとめるとこうだ。
OPEN ↓ READ(ループ) ↓ CLOSE
な)なんか簡単そうっすね、これ
係)そうかそうか。
お前の落ち込んだ顔をまた見れそうで、嬉しいよ。
な)え!?
係長のワンポイント
READは新しい処理じゃない、入力の置き換えだ。ACCEPTがキーボードなら、READはファイルからの入力になる。
だから流れは変わらず、「読む→処理→繰り返す」だけだ。
違うのは、最初にOPENし、最後にCLOSEする責任が増えること。
その結果、入力が“作業”から“仕組み”に変わる。
COBOLは入力方法が変わっても、処理の流れで組み立てる言語だ。


コメント