助けてください。お願いします。
今COBOLを勉強しているのですが、1つのファイルに2つのキー項目があるのですが、どうやってその2つのキー項目をファイルから抜き出すのですか?
参考書を見てもあまりわからなかったので・・・

A 回答 (1件)

1つ目のキー(主キー)はkey指定


2つ目のキー(復キー)はALTERNATE KEY
オルタネート キー指定(スペル合っているかな)

使用D/Bによって記述は変わります。
がんばってください。
    • good
    • 0
この回答へのお礼

ありがとうございます。がんばってみます。

お礼日時:2002/02/15 17:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q大きな2つのファイルから共通するデータを抜き出す方法を教えてください。

2つのテキストファイルから共通する行を高速に抜き出す方法に困っています。

fileA.txtには
13936.1
139.0136.1
139.0236.1
という感じで1万行ぐらいあり、

fileB.txtには
138.836.30.01
138.8136.3NaN
138.8236.30.01
という感じで100万行ぐらいあります。

fileAと1、2欄目が共通する行をfileBから抽出しようと思って以下のawkのスクリプトを書きましたが、処理に異様に時間がかかってしまいました(5時間かけてたった300行ぐらいしか処理できない!)。
もっと高速に処理するための方法をぜひ教えてください。

BEGIN{FS="\t"
while(getline <"fileA.txt" > 0)
form[++n]=$1":"$2
}
{for(i=1;i<=n;i++){
temp=form[i]
if($1":"$2 == temp){print $0}
}
}

Aベストアンサー

awkは判りませんが、比較する対象を出来る限り減らせば速度はあがるのではないでしょうか?
今のプログラムだとfileAの行数×fileBの行数の比較をしているのでしょうか?

例えば、fileA、fileB共にソートして、

while(fileAの終端まで) {
  fileAを1行読み込む
  while(fileBの終端まで) {
    fileBを1行読み込む
    if (fileA = fileB) {出力し、whileを抜ける}
    if (fileA < fileB) {無かったとみなし、whileを抜ける}
    #fileA>fileB 次のfileBの行を読み込む為に戻る
  }
}

こんなプログラムだと、比較回数はぐっと減ると思います。

QCOBOL85からCOBOL2002移行

HPのOSバージョンアップして、COBOL85からCOBOL2002移行の作業をしました。再コンパイルして、生成されたモジュール(又はオブジェクトファイル.o)のサイズは元の2、3倍になってしまいましたが、どういうことですか?ご教示お願いします。

Aベストアンサー

>なぜバイナリ構造が変更したら、実行モジュール大きくなるのは
>少し、詳しく教えていただけませんか。
ちゃんと書くと長いので掻い摘んで描くと
RISCではコンパイル時点で命令を細かく分け、実行時に並列計算できるもの探して実行していましたが、
Itaniumで採用したEPICではコンパイル時点で並列部分を抽出し実行モジュールに並列情報を持たせています。
アーキテクチャが変わると実行モジュールの構成(サイズ)が変わるのは仕方がないことです。

QCOBOLで作ったテキストファイルをエクセルファイルにした時、文字を赤く変える方法

質問なのですがCOBOLで作ったテキストファイル(CSV、改行付きタブ区切りファイル)をエクセルファイル(拡張子をxlsに変えただけ)にした時に、マイナスの数字をを赤い文字に変える方法を誰か知っている方がいたら教えてほしいのですー結構無理やりの方法でもいいので教えて下さい!
お願い致しますV(^0^)

Aベストアンサー

CSVではテーブルの中身しか保存できないので、まず無理でしょうね。
当方Excelをインストールしていないので、動作確認はできませんが、下記のhtmlソースをメモ帳などにコピーして、拡張子をhtmlかxlsで保存し、Excelで開いたときに色が付いているようであれば、COBOLからの出力をhtml形式にしてやれば、望みの動作をするようになるでしょう。
htmlファイルの拡張子をxlsにするのは、すごく気持ち悪いですけど・・・
ミニツールの類で異常な拡張子を付けるとまず誤動作を起こしますが、Excelくらい馬鹿でかいソフトになれば、ファイル内容からその形式を認識してくれると思います。

<html>
<body>
<table>
<tr>
<th bgcolor=#000000> </th>
<th bgcolor=#ff0000>a</th>
<th bgcolor=#00ff00>b</th>
<th bgcolor=#0000ff>c</th>
<th bgcolor=#ffff00>d</th>
</tr>
<tr>
<td bgcolor=#ff00ff>e</td>
<td bgcolor=#00ffff>f</td>
<td bgcolor=#ffffff>g</td>
<td bgcolor=#800000>g</td>
<td bgcolor=#008000>h</td>
</tr>
<tr>
<td bgcolor=#000080>i</td>
<td bgcolor=#808000>j</td>
<td bgcolor=#800080>k</td>
<td bgcolor=#008080>l</td>
<td bgcolor=#808080>m</td>
</tr>
</table>
</body>
</html>

CSVではテーブルの中身しか保存できないので、まず無理でしょうね。
当方Excelをインストールしていないので、動作確認はできませんが、下記のhtmlソースをメモ帳などにコピーして、拡張子をhtmlかxlsで保存し、Excelで開いたときに色が付いているようであれば、COBOLからの出力をhtml形式にしてやれば、望みの動作をするようになるでしょう。
htmlファイルの拡張子をxlsにするのは、すごく気持ち悪いですけど・・・
ミニツールの類で異常な拡張子を付けるとまず誤動作を起こしますが、Excelくらい馬鹿でかいソ...続きを読む

QCOBOL97,Power-COBOLでの効率の良い書き方

汎用機のCOBOLでは添字にはCOMP-1を使うと効率が良いとか、ベースレジスタ削減のために 01レベルのワーク領域の数を減らす(少数の01レベルの配下にワーク領域を定義する)などがマニュアルに記載されていました。
ところがパソコン/サーバ上で動くCOBOLの場合は、計算用にCOMP-3を使うと処理効率が悪い、計算用ではCOMP-3よりはDISPLAY項目、さらに良いのはCOMP-5である、などと言う記事もあり汎用機COBOLとはずいぶん違うようです。実際のところ、パソコン/サーバ上で動くCOBOLで実行時の効率が良いプログラムを書くためには、どのような事に注意すれば良いのでしょうか?

Aベストアンサー

以下が参考になるのでは?

http://q.hatena.ne.jp/1171405263

>>実際のところ、パソコン/サーバ上で動くCOBOLで実行時の効率が良いプログラムを書くためには、どのような事に注意すれば良いのでしょうか?

昔は、汎用機やオフコン、パソコンでCOBOLのアプリを書いていました。ハードレベルのことは、よくわかりませんが、記載されていたとおりだという気がしますね。でも、メモリーや処理効率が悪とはいっても、人間のレベルからしたら、気にしないでもいい程度だと思いますよ。

個人的には、メモリ効率等よりも汎用機・オフコンなどとソースの共用ができるほうが良いと思うので、汎用機に合わせたいところですが、汎用機で使う予定が無いならパソコン・サーバ上でベストな指定でもいいかもしれませんね。

そして、数値計算(特にお金の計算)では、10進で行われるCOMP-3が計算誤差やデバッグの容易さで有利だと思えます。

Qオフコン(富士通Kシリーズ)COBOLと汎用機COBOLの違い

 私、富士通オフコン(KやPRIMERGY6000)でのシステム開発を10年以上やっています。当然COBOL言語での開発です。オフコン市場が縮小傾向(AS400は別のようですが)にあるなか、汎用機の開発やリプレースは盛んに行われていると認識しています。

 私の勘ではデータベースのREAD/WRITEのあたりや画面プログラムの表示のさせ方などが違うのでは、と思うのですが、実際に富士通オフコンのCOBOL-Gと汎用機(富士通でもIBMでもなんでも構いません)COBOLを経験された方に、その相違点をお聞きしたく存じます。

 宜しくお願いします。

Aベストアンサー

COBOLというより、DBMSやDCモニタ(富士通ならAIM,IBMならCICSやIMS等)による違いですね。
DBについてはSQLをサポートするRDBMSなら、アプリケーションのコーディングレベルは大きな違いは無いでしょうけど、階層型やネットワーク型DBだとそれぞれ独自の特色があるので使うDBMSによって大きく異なるでしょう。
画面は最近はメインフレームでもWWWを使ったりもするようですが、そうでもない限り、これもDCモニタによってやり方は全然違います。
従って、メインフレームの勉強をしたいのなら、まずターゲットとするDB/DCを決めないといけません。


人気Q&Aランキング

おすすめ情報