![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
unix環境下でCOBOL85を使用しています。
あるデータを可変長でWRITEしていくのですが、
データにヘッダー情報みたいなものが付加されてしまい困っています。
ヘッダー情報を付加しないようにするにはどうすればいいのでしょうか?
定義:
FD Aファイル RECORD IS VARYING 1 TO 100 DEPENDING ON A-CNT.
01 A-DATA PIC X(100).
とか
FD Aファイル RECORD IS VARYING IN SIZE DEPENDING ON A-CNT.
01 A-DATA PIC X(100).
というパターンで試しています。
Aファイルにaaaという3バイトデータをWRITEすると、
COBOL85020315020304・・・・・aaaというデータが出力されます。
あるコボラーに聞くと「定義がおかしいからでしょう」と言ってたのですが、
どうおかしいかは本人もわからないようです。
どうすればヘッダー情報(COBOL85020315020304・・・・・)がつかず、
可変長でWRITEできるのでしょうか?教えて下さい。
No.2ベストアンサー
- 回答日時:
>プログラマーとしての仕事範囲しか受けてないので、マシン名称はわかりません。
それは発注側の問題なのでなんとしても必要な情報をもらわないとだめでしょうね。
うちの会社で仕事を受ける場合は、その辺は必要な情報として必ず請求しますし,
なければその範囲でしかできませんと確認して作業してます。
必要な情報があるかどうかもわからない状態で来ることも多いし、実際不足している場合が多いので(^^;;
少なくてもターゲットマシンのコンパイラのマニュアルは必ず要求します。
ほとんどCですが、OSや実行環境依存の物が必ずありますし、
特殊な環境(Lynx,aix,pSOS+等)の場合も多々ありますので。
だいたい、unix環境といったって、いろいろありますし。
なんとかユーザーさんからターゲット環境のマニュアルを奪い取ってください。
「ヘッダ情報はCOBOLが勝手につけるから、
コンパイラのマニュアルを見ないと対応できん!」と。
No.1
- 回答日時:
COBOLは知らない人間ですが、昔大型汎用機を使った経験と、iris(IREX)上のFORTRANで似たようなことがあったという記憶からの推測です。
COBOLは元々汎用機上での言語ですから。
>あるデータを可変長でWRITEしていくのですが、
この実現の方法に問題があるのかも知れません。
unix,windows(DOS)はファイルの形式自体は単一ですが、
汎用機では違います。
既にうろ覚えですが,固定長形式、可変長形式等いろいろあります。
可変長で書くというのが、元々は可変長の形式で書くための機能で、OSのファイル形式との密接な関係があるように思います。
たしか、OS内部の物理的なファイルのイメージがデータ長+データ本体が1論理レコードとなっていたように思います。
これをunix上で実現するため、汎用機のファイルをエミュレートを状態になっているためと思います。
ですから、COBOL同士で読み書きする分には同じエムレートをして行われるので、
問題なく実行できていると思います。
もし、他のプログラム等で読み書きを行う必要があるものでしたら、
実行時のオプション、コンパイル時のオプション、
ファイルのオープン時のパラメタ等で指定可能かも知れません。
但し、この場合は本来持っているはずの情報が欠落することになると思いますので、
使い方によっては問題が生じるかも知れません。
詳しいことは、そのunix上のCOBOLのマニュアルから
ファイル関係の説明の部分を探して読む必要があります。どこかに詳しく説明があるはずです。
場合によると、プログラムの修正等も必要かも知れません。
ただ、汎用機とunixの両方にある程度知識がないと判らないかも知れません。
また、これは言語環境に依存する部分ですから一般的なCOBOL関係の本,マニュアルでは説明が一切無いように思います。
FORTRANでの経験は、やはり余計な管理情報のような物が付加されて、Cとのファイルのやり取りに問題が生じたためです。
詳細は忘れました(^^;;
確か,オープン時の指定を変えたように記憶してますが。
あと、unix環境下のCOBOLでは環境説明が不十分と思います。
具体的な名前を書いた方がいいでしょう。
こういう部分は環境依存ですので、おそらくコンパイラによっても違ってくると思いますので。
プログラマーとしての仕事範囲しか受けてないので、マシン名称はわかりません。
UNIX環境COBOL85としか判らないんです。^^;
ユーザーから、ヘッダー情報をつけるなと言われ、
ついていない可変長レコードを見たことあるとも言われ、
(どこで?と聞き返したら、もう覚えてないようで・・・)
困り果てた状態なんですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
COBOLで可変長ファイルの出力について教えてください。
その他(プログラミング・Web制作)
-
COBOLでCSVをインプットにして読むには・・・。
その他(プログラミング・Web制作)
-
COBOL、項目末尾に空白がある場合削除の方法その他
その他(プログラミング・Web制作)
-
-
4
COBOLの改行
その他(プログラミング・Web制作)
-
5
COBOLのCOMP形式について
その他(プログラミング・Web制作)
-
6
COBOL85でのCSVファイルの取扱方法について
その他(プログラミング・Web制作)
-
7
改行コード(CR/LF)の設定の仕方
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cでのネットワークファイルの読...
-
C言語初心者の質問失礼します。
-
分割コンパイルの#defineについて
-
Excelマクロでの再読込み方法
-
フリーソフトウェアでflaファイ...
-
Wordファイルの結合
-
ドラッグアンドドロップでファ...
-
String Table リソースを条件に...
-
SGファイルって何ですか?
-
VBに、Cのincludeのようなもの...
-
Access2010の最適化設定について
-
COM相互運用機能のON,OFFによる...
-
UTL_FILEにて既存のExcelに追加...
-
ShellExecuteEx→WaitForSingleO...
-
大きいサイズのテキストファイ...
-
VC++の外部依存関係
-
リムーバブルディスクのWordの...
-
fprintfで文字化け
-
ExcelVBA 定数宣言を外部ファイ...
-
CSVファイルへの保存の際、デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
SGファイルって何ですか?
-
テキストファイルの最終行を削...
-
Excelマクロでの再読込み方法
-
分割コンパイルの#defineについて
-
大きいサイズのテキストファイ...
-
グローバル変数のよくない使い...
-
ドラッグアンドドロップでファ...
-
VBAにてEXCEL以外のファイル(テ...
-
C言語のfopenについて教えてく...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
【C#】リソースファイルの埋め...
-
FileOpen 関数で既にファイル...
-
VBに、Cのincludeのようなもの...
-
WAVファイル同士の結合が可...
-
ハッシュの計算時間について
おすすめ情報