NECのオフコン情報掲示板(ノウハウ系)
NECのオフコンを活用するためのノウハウを話し合うための掲示板です。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
Re:ファイル削除について | |
ねこきち 2009-4-8 13:48:00
[返信] [編集] 温泉好きのうさぎ様。ありがとうございます。#ABCのファイル詳細情報の表示は頻繁に使用しているのに、気づきませんでした。 | |
外字について(日本語文字拡張セットの説明書のなかの・・・) | |
富山清風 2009-4-7 16:34:00
[返信] [編集] お願いします。 NECの日本語文字拡張セットのマニュアルの中に 「A-VX外字ファイル」、「Expressサーバ外字ファイル」、 「Windows外字ファイル」の3種類の外字ファイルが 出てきますが、 「Expressサーバ外字ファイル」と「Windows外字ファイル」の両者の 違いがよくわかりません。 初歩的なことのようなのですが、違いを教えてもらえませんか。 お願いします。 | |
Re:COBOLで日本語のあいまい検索は出来ますか | |
ぴぴ 2009-4-2 13:52:00
[返信] [編集] 富山清風様、ありがとうございました。 **** 部分一致 !”東”! SELECT NCFTKC WHERE ( FTKC-KTNM CHARACTERS WG-N1 ) COUNT IN WG-KAKUNIN . を使い、検索する事が出来ました。 A−VXのCOBOL85言語説明書などを読んだのですが、 わからなかったです。 これからは、過去ログも見てから質問します。 | |
Re:COBOLで日本語のあいまい検索は出来ますか | |
富山清風 2009-4-1 19:57:00
[返信] [編集] http://otd10.jbbs.livedoor.jp/286441/bbs_reply?reply=521 あたりが参考になりませんか? 今回、SELECT命令に関して、 私も以下のコーディングで試して、 うまくできましたので、紹介します。
(注)検索文字列の桁数が複数ある場合(例:”東”,”東京”など) は、上記のコーディングの例ではWG-N1、WG-N2などを 複数用意する必要があるかも。 参考になれば幸いです。 | |
Re:COBOLで日本語のあいまい検索は出来ますか | |
ぴぴ 2009-4-1 11:17:00
[返信] [編集] 温泉好きのうさぎ様、ありがとうございます。 20年間、COBOLの仕事をしていますが、 INSPECT命令を使ったことがありませんでした。 これから、試してみたいと思います。 | |
Re:ファイル削除について | |
温泉好きのうさぎ 2009-3-31 21:27:00
[返信] [編集] #ABC によってアロケートされたファイルか、#ALLOC によってアロケートされたファイルかを見分けるには、#MAP で詳細情報を表示または印字させます。 最初の行に NO. 1 !ID (CID NAME GEN) : ABC-FILE このように表示されますが、ID の直前に「 ! 」があれば、#ABC によってアロケートされたもの、ここが空白であれば、#ALLOC によってアロケートされたものであることがわかります。 最近のOSのバージョンでは、#ABC によってアロケートされたファイルを、#ALLOC によってディアロケートすることはできませんが、逆に #ALLOC によってアロケートされたファイルを、#ABC によってディアロケートすることは可能です。 また、複数索引順編成ファイルについては、#ALLOC によってアロケートされたデータファイルに、#ABC によってキーファイルをアロケートすることはできません。逆も同じであり、同一ユーティリティに限定されます。 当方の環境で、質問者様が行った処理を再現したところ、 #ALLOC によって複数索引順編成ファイルのデータファイルおよびキーファイルをアロケートした後、 #ABC によってキーファイルのディアロケートは可能でしたが、 #ABC によってキーファイルをアロケートしようとしたところ、「ファイル属性エラー」となりました。 古いOSのバージョンの場合、このあたりのチェックがかなりゆるかったのではないでしょうか。 | |
Re:COBOLで日本語のあいまい検索は出来ますか | |
温泉好きのうさぎ 2009-3-31 17:25:00
[返信] [編集] INSPECT 命令を使えばいいのではないでしょうか。 書き方の例 INSPECT aaaa TALLYING nnnn FOR ALL xxxx. aaaa : 検査される項目 nnnn : 出現回数のカウンタ (実行前にゼロクリアしておくこと) xxxx : 検査したい項目 aaaa および xxxx は、PIC X の基本項目で定義します。PIC N は不可なので再定義等で回避します。 xxxx は、定数で指定することも可能ですが、日本語の場合 NC”漢字” は不可です。”漢字” とだけしてください。 実行後、出現回数の値を調べることによって、結果の有無がわかります。 また、aaaa および xxxx は、部分参照させることも可能ですから、工夫することによって、可変長の検索ができます。 (例) INSPECT aaaa(bb:cc) TALLYING nnnn FOR ALL xxxx(1:yy). (意味) aaaa の bb バイト目から cc バイトの長さの範囲で、xxxx の yy バイトの長さの項目を検査する。 | |
COBOLで日本語のあいまい検索は出来ますか | |
ぴぴ 2009-3-31 16:05:00
[返信] [編集] RDBQの検索で例えば会社名に「東」が入っているデータを検索する時は、!”東”!とすると「東京株式会社」、「株式会社東京」などが表示されます。 COBOLのプログラムで同じ事が出来ますか? 1件データを読んで、会社名をワークに落として、 OCCURS 30 PIC N(01)などと定義して、ひとつひとつ比較するしかないのでしょうか? SELECT命令では、あいまい検索が出来ないと思ったのですが、出来る方法はありますか? | |
Re:ファイル削除について | |
ターラヤン 2009-3-31 1:46:00
[返信] [編集] ねこきちさん、こんにちは。 #ABCの方が高機能で、#ALLOCでは作れないファイルがある。 そういった#ABCでしか作れないファイルを#ALLOCで削除したりすると、 何か不都合があるかもしれない。 基本的には、#ALLOCで作ったファイルは#ALLOCで変更/削除などを行い、 #ABCで作ったファイルは#ABCで変更/削除した方が良い、 というような話を昔聞いたことがあります。 複数索引順編成のキーファイルの話ですが、特に手順として書いていないようですが、 キーの再生成はおこなったのですよね? | |
Re:PIFからの#SWRIT;について | |
ターラヤン 2009-3-31 1:24:00
[返信] [編集] とりあえず出力はできるようになったようで、おめでとうございます。 フロッピーディスクのファイルはグローバルファイルで、 今回CIDなしでPIFを作ったので、このファイルもグローバルファイルですね。 PIFを作るCIDと印字要求をかけるCIDが違うと、印字要求時にエラー(U2209)になります。 #SWRIT実行時にエラーになるとしたら、#SWRITから見て、PIFが見れない、つまり CIDが異なるのでアクセスできない状態になっている、 ということだと思いますが・・・ PIFを作るのと#SWRITを起動するのは同じオペレータなのですよね・・・ ここがよくわからないところ。 もしかしたら、原則としてPIFはグローバルで作らなければならないのか? (私は今まで気にせずにCID有りでPIFを使ってましたが、それは間違い?) | |
ファイル削除について | |
ねこきち 2009-3-30 16:23:00
[返信] [編集] #ALLOCで登録されたファイルか、#ABCで登録されたファイルなのか不明なのですが、このファイルを削除する際、#ALLOCは、#ALLOCのデリートで、#ABCで登録されたファイルは、#ABCの削除で 処理しないと、後ほど、ファイルが読めないとか、同名ファイルが登録できないとかって事に ならないでしょうか? 以前、#ALLOCで登録した複数索引順編成ファイルのkey領域を削除(#ABC)し、再確保(#ABC)したところ、ファイルが読めない事がありました。 この件についてご存知の方、宜しくお願いします。 | |
Re:OCFの操作員名 | |
ねこきち 2009-3-30 16:12:00
[返信] [編集] ありがとうございます。 やってみました。大丈夫そうです。 | |
Re:PIFからの#SWRIT;について | |
IGA 2009-3-30 14:35:00
[返信] [編集] MSDから出ました! MSD002にファイル名=ABC、で作成したのですが、 ためしに、グローバルIDでログインして、 CID=スペースで、 ファイルを作成(アローケート)してみました。 普段使用している別のCID=XX、でログインしなおし、 #SPOOL; ↓ 複写 ↓ 印字要求 をしたら出ました! なぜだかわかりません。 定期業務で使用したいので、 原因調べます。 ちょっと気になるのが、 スプールファイル SYS@SPXXXX は、 CID=スペース、つまり、 グローバルで作成されていることです。 ●帳票を作ったジョブのCID ●スプールファイル(SYS@SPXXX)のCID ●PIFファイルを作成するCID(MSDXXXとかFDUXXX) ●印字用要求をかけるCID ●スプールライトを発行するCID これらの関係がなにかありそうです。 | |
Re:PIFからの#SWRIT;について | |
IGA 2009-3-30 10:16:00
[返信] [編集] IGAです。ほんとにすみません。 >同じ名前のファイルが同じハードディスク(MSDxxx)にある ということはありませんか。 同じファイル名のPIFがあると、ライタが間違って別の同名ファイル を探しに行って「ファイルが無い」と言われるかもしれません。 鋭いご指摘です。可能性は薄いとは思いますが、 再確認する必要はあると思います。 CIDのからみも怪しいです。CIDをグローバルにしたり、 変えたり、色々実施してみます。 ありがとうございました。 また結果報告させていただきます。 | |
Re:PIFからの#SWRIT;について | |
ターラヤン 2009-3-30 1:55:00
[返信] [編集] 返事のないままですみません。 フロッピーディスクでできて、ハードディスクのファイルにすると ダメのときは、グローバルファイル/ローカルファイルが原因の事 が多いので、それかと思って質問したのですが、違うようですね。 私もフロッピーディスクとハードディスクにPIFを作って、それぞれ 印刷してみましたが、普通に印刷できました。 今のところ、原因は思いつきません。 同じ名前のファイルが同じハードディスク(MSDxxx)にある ということはありませんか。 同じファイル名のPIFがあると、ライタが間違って別の同名ファイル を探しに行って「ファイルが無い」と言われるかもしれません。 ちなみに、グローバルファイル/ローカルファイルの説明は、 「データ管理説明書」「3.2.1ファイルの参照範囲」にあります。 | |
Re:PIFからの#SWRIT;について | |
IGA 2009-3-27 15:49:00
[返信] [編集] こんにちは。うさぎさん。 早速実施してみました。 (1) #SPOOL → 5.PIF → 2.ファイル作成 → 装置名 → ファイル名 → 領域サイズ この入力を行った時点で、その装置上にファイルは存在していますでしょうか。 #MAP 等で確認してく ださい。 ⇒⇒⇒ はい。間違いなく存在しております・・。MSD002に256のSEQファイルが。 (2) #SPOOL → 5.PIF → 3.複写 → 複写元レポート番号 → 複写先装置名 → ファイル名 この後で、ファイル上に有効なレコードが存在していますでしょうか。これも、 #MAP 等で確認してく ださい。 ⇒⇒⇒ はい。すでに確認済ですが、再度確認しました。 間違いなく存在しております・・。 また、ついでですが、 #SPOOLの8.表示→2.PIF表示で、MSDxxxを指定すると、 ちゃんとその帳票が表示されます。 (3) PIF の作成および複写を、#SPOOL ではなく、#ABC にて行った場合、どうなりますでしょうか。 #ABC → 1.ファイル情報の保守 → 1.ファイルの保守 → 1.ファイルの定義 → 1.順編成 → 装置 MSD??? → ファイル FFFF → レコード長 256 → 領域サイズ 以下適切な値で ⇒⇒⇒ はい。すでに実施済ですが、念のため再度実施しました。 #ABCで手動で256の順編成ファイルをつくりました。 しかし結果は残念ながら同じでした・・。 #ABC → 5.複写(変換) → 1.ファイル → ファイル SYS@SPmmmm → 入力ファイル用オプション NO → ファイル FFFF → 出力ファイル用オプション NO → オプション機能 YES → 出力形式 VARIABLE → 以 下適切な値で #SPOOL → 5.PIF → 1.印字要求 → 装置 MSD??? → ファイル名 FFFF #SPOOL → 9.ライタ → 1.ライタ起動 → プリンタ番号 PRNxxx 通常であれば、この方法でも印字開始するのですが、いかがでしょう。 ⇒⇒⇒なるほど。こんな方法もありなんですね。 しかし、実施しましたが、結果は同じでした・・・。 しつこいようですが、もう一度「FDUxxx」 にPIFを複写して、 印字要求、#SWRIT;実施しましたが、 ちゃんと出るんです・・うう。 | |
Re:PIFからの#SWRIT;について | |
IGA 2009-3-27 13:18:00
[返信] [編集] 富山様、温泉様、 ほんとうにご親切ありがとうございます。 さっそく確認、実施してみます。 また後日。 | |
Re:PIFからの#SWRIT;について | |
温泉好きのうさぎ 2009-3-26 16:24:00
[返信] [編集] いくつか確認していただきたいことがあります。 (1) #SPOOL → 5.PIF → 2.ファイル作成 → 装置名 → ファイル名 → 領域サイズ この入力を行った時点で、その装置上にファイルは存在していますでしょうか。 #MAP 等で確認してください。 (2) #SPOOL → 5.PIF → 3.複写 → 複写元レポート番号 → 複写先装置名 → ファイル名 この後で、ファイル上に有効なレコードが存在していますでしょうか。これも、 #MAP 等で確認してください。 (3) PIF の作成および複写を、#SPOOL ではなく、#ABC にて行った場合、どうなりますでしょうか。 #ABC → 1.ファイル情報の保守 → 1.ファイルの保守 → 1.ファイルの定義 → 1.順編成 → 装置 MSD??? → ファイル FFFF → レコード長 256 → 領域サイズ 以下適切な値で #ABC → 5.複写(変換) → 1.ファイル → ファイル SYS@SPmmmm → 入力ファイル用オプション NO → ファイル FFFF → 出力ファイル用オプション NO → オプション機能 YES → 出力形式 VARIABLE → 以下適切な値で #SPOOL → 5.PIF → 1.印字要求 → 装置 MSD??? → ファイル名 FFFF #SPOOL → 9.ライタ → 1.ライタ起動 → プリンタ番号 PRNxxx 通常であれば、この方法でも印字開始するのですが、いかがでしょう。 | |
Re:PIFからの#SWRIT;について | |
富山清風 2009-3-25 12:41:00
[返信] [編集] 苦労されているようですね。 私も実行してみましたが、MSDでまったく問題なく、 できました。 やっぱり、初歩的な間違い(勘違い)として <複写元レポート番号、複写先(MSDxxx、ABCD)を指定 の「MSDxxx」の「xxx」あたりを間違えている可能性が・・・、 あっていたら、当方もわかりませんが・・・ | |
Re:PIFからの#SWRIT;について | |
IGA 2009-3-25 10:52:00
[返信] [編集] 別のオペレータコードで、同じ作業をしてみましたが、やはり同じでした。。 しつこいようですが、詳細は以下のとおりです。 #SPOOL; ↓ 5.PIFを選択 ↓ 2.ファイル作成を選択 ↓ 装置名:MSDxxx ファイル名:ABCD(任意) 領域サイズ:10000(任意) 同じくPIF画面で 3.複写 ↓ 複写元レポート番号、複写先(MSDxxx、ABCD)を指定 同じくPIF画面で、 1.印字要求 ↓ 装置:MSDxxx ファイル名:ABCD #SWRIT;を起動 ↓ PRD=PRN999 ↓ S U2209:(FIL=ABCD )スプールファイルが見つかりません A まったく同じ作業を、 MSDxxxでなく、FDUxxxにするとうまく行くのです・・ |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
BluesBB ©Sting_Band