
通信プロトコルが異なるシステム間でファイルを授受する際、ファイルの送達確認として、ヘッダレコードやトレーラレコードを使用するという話を聞いたのですが、ヘッダレコードやトレーラレコードはそのような目的のために定義しているのでしょうか?
(WEB上でいろいろ検索してみたのですが、そのような情報が取得できなかったので、質問しました)
全銀協フォーマットのように、ファイルフォーマットでヘッダレコードやトレーラレコードを定義している場合、データレコード以外のヘッダレコードやトレーラレコードはどのような場合に使用するのかを周りの人に聞いた際に上記の話を聞きました。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>>ヘッダレコードやトレーラレコードはそのような目的のために定義しているのでしょうか?
ヘッダレコードやトレーラレコードが無くても、プログラムのロジックは作れるかもしれませんが、あるほうが以下の点で有利でしょうね。
1)データの始まりと終わりが明確になる
通信途中、あるいは処理のどこかで、明細部のデータが1件脱落した、あるいは前半部や後半部がばっさり抜けたとき、件数が一致しない、あるいはヘッダレコードやトレーラレコードが無い等で、異常がすぐわかる。
2)データフィールドが効率的に使える
データ全体の情報は、明細ごとに入れると非効率です。たとえば、ある支店のデータ1万件で、銀行名、支店名のカタカナが必要な場合、全明細データに銀行名・支店名のカタカナを入れる必要はありませんね。ヘッダーレコードだけにあれば、十分です。明細データは、その空いたフィールドを別の用途に使えるようになります。
3)プログラムのロジックが簡単になる
ヘッダレコードやトレーラレコードがあると、COBOL世代のプログラマの場合、慣れたロジックでプログラミングできる。
こんなところですかね。
ご回答ありがとうございました。
1)データの始まりと終わりが明確になる
やはり、ヘッダレコードやトレーラレコードは授受したデータの不備を確認する手段の一つになるようですね。
2)データフィールドが効率的に使える
ヘッダレコードやトレーラレコードを定義するメリットの一つになりますね。質問した時点では意識していませんでしたので、良い回答を頂けたと感謝しております。
3)プログラムのロジックが簡単になる
「慣れたロジックでプログラミングできる」というのは、どのような感じなのでしょうか?
私はプログラミング経験がほとんど無いため、具体的に説明していただいたとしても理解できないかもしれませんので、イメージ程度で構いませんので、教えて頂けないでしょうか?
No.2
- 回答日時:
>>私はプログラミング経験がほとんど無いため、具体的に説明していただいたとしても理解できないかもしれませんので、イメージ程度で構いませんので、教えて頂けないでしょうか?
簡単な説明ですけど。
昔は、汎用コンピュータ上で、COBOLを使って、部別課別売り上げ一覧表というような表を沢山作っていました。現在エクセルで「課別売上小計」~「部別売上中計」~「総売上」なんてのを作ることありますが、そういう表です。
【01 関東営業部】
001 山手担当課
00112 斉藤 倫 1000
00114 安斉 かなえ 2000
00119 小沢 カオル 3000
-----------------------------------------
001 山手担当課 小計 6000
002 下町担当課
00312 石井 まゆみ 10
00314 谷川 史子 20
00319 こうの 史代 30
-----------------------------------------
002 下町担当課 小計 60
=========================================
【01 関東営業部】 中計 6060
・・・・・・・
(カラムずれはご容赦)
この場合、「課コードが変わったらどうする」とか「部コードが変わったらどうする」って、コントロールブレイクっていうのですが、そのタイミングで、必要なサブルーチンに処理を飛ばしていました。
なので、こういうプログラムに慣れているプログラマは、全銀フォーマットのようなデータの区分を持つものは、慣れた処理というわけです。
なお、最近では、オブジェクト指向ってのが流行っていますが、個人的には、それ以前に「構造化プログラミング」とか「複合設計」など、ちょっと古いと思われている技術をマスターしてほしいと思ったりします。
このあたりを知らないプログラマが、「VBで○○集計一覧表のロジックをどう作ればいいかわからない!」って悩んでいたりする場面に出くわすことがあります。
P.S.
その昔、3000ページ入りのB4用紙の段ボール箱で、毎月30箱とか40箱分(もっとかも?)売上レポートとして印刷していました。フロアにずらりと並んだ印刷済みの箱は、ちょっと異常な感じでしたね。プリンタの値段は2億円とか言っていました。
ご回答ありがとうございました。
文章だけではなく、表イメージを付けて頂いたのでイメージが掴めた気がしています。
>プリンタの値段は2億円とか言っていました。
費用削減とか、ペーパーレス化の現在では、なかなかお目にかかる機会は無いかもしれませんね。
いろいろな補足情報も提供して頂き、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPのNULLレコード表示について...
-
カレントレコードが無い事を判...
-
ADO VBA 実行時エラー3021
-
ACCESSで大量の更新を行うと「...
-
postgresql DELETE後commit...
-
ACCESSで「16389予約済みエラー...
-
レコード長を数えてくれる関数
-
レコードが存在しなかった場合
-
DataGridViewにてセル以外をク...
-
固有レコード識別子の選択とは
-
差し込み印刷のレコード数について
-
[VBA] ADOの Clone と AddNew
-
ファイル書込みで一行もしくは...
-
SYLKファイルフォーマットについて
-
エラー番号=5 制約を有効にで...
-
Accessでレコードの更新を任意...
-
アクセスでレポートの1印刷内...
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
Oracleでの文字列連結サイズの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewの、選択されてい...
-
ファイル書込みで一行もしくは...
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
JSPのNULLレコード表示について...
-
差し込み印刷のレコード数について
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
サブフォームに新規レコードを...
-
ACCESSで大量の更新を行うと「...
-
カレントレコードが無い事を判...
-
ワードの差込印刷で教えて下さ...
-
[VBA] ADOの Clone と AddNew
-
サブレンジ分割されたNDB(富士...
-
固有レコード識別子の選択とは
-
データセットのレコード更新が...
-
レコードセット(ADO.Recordset)...
-
ヘッダレコードとトレーラレコ...
-
Access を×ボタンで閉じ...
-
ACCESS VBA テーブルデータに...
おすすめ情報