NECのオフコン情報掲示板(ノウハウ系)
NECのオフコンを活用するためのノウハウを話し合うための掲示板です。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
Re:16進を10進に変換する方法 | |
江須扇 2006-8-19 7:35:00
[返信] [編集] >2バイト単位しか利用できませんが、USAGE COMP-1 >を利用したらいかがでしょうか? という事で、4バイトの場合は、 USAGE COMP-2 を利用していただくこととなります。 但し、 COMP-1 が−32768≦x≦32767 COMP-2 が−2147483648≦y≦2147483647 となります。 詳しくは、COBOL言語説明書、2.4.3.4 データの表現形式 をご覧下さい。 | |
Re:16進を10進に変換する方法 | |
ゼロ 2006-8-18 10:18:00
[返信] [編集] 遅くなりましたが、江須扇様レスありがとうございました。 USAGE COMP-1を使用してレコード長、ブロック長、更新回数は問題なく10進に変換できました。
これで、WORK-RSIZ1の内容が’256d’になっていました。 USAGE COMP-1の仕組みがよく理解できていないので結果論ですが、16進数→10進数の変換は出来たようです。 問題になったのが第1〜第4エクステント開始終了アドレス。 これは上記の方法で変換するとまったく意味不明な値が帰ってきたので下記のような変換テーブルを作って1バイトづつ判断して内部16進から外部16進に変換しました。 あとは16進→10進への計算ルーチンを作って10進にしました。 もっといい方法があるかもしれませんがこれしか思いつきませんでした。
| |
Re:16進を10進に変換する方法 | |
ちょっと前までA-VXユーザ 2006-8-17 23:18:00
[返信] [編集] USAGE COMP-1 って、2進数ですね。 16進数は、4bits表現で、0〜9,A〜Fですよね。 きっと間違っていないと思いますが、ちょっと気になって、 余計なお世話だったかな? 以上 | |
Re:ご苦労様です−3 (聞くと怖い話) | |
ちょっと前までA-VXユーザ 2006-8-17 23:15:00
[返信] [編集] 今は、A-NXが手元で使えないので、詳細に分かりませんが、 確か、#SABC4 と言うUTLで、COBOL85で作ったLMから、 リンクされているCU名、REV(=SU のREV)が表示出来たはずですね。 COPY原文名、REVも表示(印刷?)出来たと思います。 IDSPと言う、シンボルデバッガがリリースされて少し経ってから この機能が追加されたと記憶。 COBOL85の翻訳時に、DDFから直接COPY原文を生成出来ましたね。 この辺りを使っていると、非常に便利だった と記憶。 違っていたら、ごめんなさい。 以上 | |
ご苦労様です−3 (聞くと怖い話) | |
EXCHANGE 2006-8-8 8:52:00
[返信] [編集] * もう一つ言い忘れたことがありました。 * SYS@DDFには現状運用システムと一致した内容がある。と申しましたが、実はこれには重大な注意事項があります。 * A−VXでは、COBOLの項目定義とDDFのDB定義とが別々に管理されているため、両者に不一致があってもCOBOLプログラムとしては問題なしに稼働してしまう。という問題があります。 * AS/400等では、例えばCRTPFコマンドを実行するとDDSの定義に基づいて、物理ファイルのアロケートとディクショナリへの登録を同時に実行してくれるので、DDS定義(項目定義)、物理ファイル、ディクショナリ定義簿の三者が完全に一致するのですが、 A−VXでは歴史的にファイルベース−−>データベースと追加されてきた経緯からか、このような厳密さがありません。 * コピー句とDD定義の不一致を調べる方法としては、RDBQ2等でデータを覗いてみて、中身が妥当かどうか(桁ずれなども含めて)確認するぐらいしか方法がないようです。 | |
ご苦労様です−2 | |
EXCHANGE 2006-8-8 8:22:00
[返信] [編集] * 内容の補足です。説明がワンステップ抜けていました。 差し替えて下さい。 * RUN #DDM; −−−> 2.表定義 −−> MSD SYS@DDF 1.OK −−> (以下同様です)。。。 | |
ご苦労様です | |
EXCHANGE 2006-8-8 7:57:00
[返信] [編集] * ヨードさんこんにちわ。なかなかたいへんみたいですね。 乗せ換えというのは、何度経験してもいつも何か隘路があるようです。 * さて、レイアウトの件の続きですが、#DDMを使ってSYS@DDFをプリントアウトすることが出来ればCOPY句がなくてもかなりな情報が手にはいると思います。 * RUN #DDM; −−−> MSD SYS@DDF 1.OK −−−> 6.リスト出力 −−> 全印刷 登録順 PRN999 1.OK で、少なくともデータベースに登録されている表名(物理ファイル、論理ファイルを含めて)および、項目名(前任者がよほど変わった方でない限りCOBOL上の項目名のまま)を印刷出力できます。 * ただしこの方法は次の点に注意です。 (1)SYS@DDFは現状の運用システムに使われているので、内容の信憑性は高いが、変更を加えると現状システムに重大な問題が起こることがあるので、A?VX未経験者の場合「リスト出力」程度にした方が安全。 たいていの場合SYS@DDF以外にももう一つXXX@DDFという名前のユーザDDFがアロケートされていると思いますので、まずこちらで確かめてからの方がいいでしょう。(前述の MSD SYS@DDFのところを MSD XXX@DDFに換えて下さい) (2)このシステムが カンパニーで運用されている場合は(チェンジDIRにて、カレントディレクトリ上で運用されている場合は)その状態でリストを出力しても他のカンパニーやグローバルのDB表は出力されません。 (3)#DDMで確認できるのはDB表のみですので、#MAPで確認したときの複数索引順編成ファイルのみになります。 相対編成ファイル、シーケンシャルファイル、それから旧式索引順編成等は確認できません。 (4)リスト出力はかなりの分量になりますのでたくさんのストックフォームをご用意下さい。リスト出力中のJOBのキャンセル(強制終了)は問題ないと思います。 事前にユーザDDF上でDB表1個、1個出力してみて練習することをおすすめします。 もちろんSYS@DDFの場合も1個1個個別にプリントアウトできます。 (5)SYS@DDFをいじくることに自信が持てないときはユーザDDFを対象にして下さい。(ただし現状運用システムと完全に一致してる保証はありませんが。。) (6)項目名が分からなくても属性のみ分かれば良いのであれば RUN RDBQ2; にてDBのデータを直接覗いてみれば良いでしょう。 こちらはエンドユーザ向けのツール(ACCESSの初歩みたいなもの)ですので直接データを更新したりしない限り便利な道具です。ココには各項目の属性が表示されます。 | |
Re:順序が逆では??? | |
ヨード 2006-8-7 12:00:00
[返信] [編集] 書き込みありがとうございます。 ご指摘頂いた点は、取り越し苦労ではなくまさにその通りです。 現状は、 ・前任者の協力が得がたい状況にある。 ・稼働中システムとSULの一致は保障できない。 という状況にあります。 それを踏まえて ・出来うる限り前任者の協力を要請 (ソースの有りかすら不明な状況) それと並行して ・現状システムの分析 ・業務フローの再確認と顧客要件(追加、変更)の確認 を実施している状況にあります。 結局のところは再構築となるだろう言う認識のもと できる限り拾える情報は、拾っておこうというのが 現状といったところでしょうか。 | |
Re:SMARTのデータ入力プログラムについて | |
MAKI 2006-8-6 16:56:00
[返信] [編集] 最初から修正する予定でしたか。 余計なことを言いました。 SMARTを使うんだったら、特に修正のときは F3,F4,F9,ADVANCEなどのキーの使い方を覚えると 効率がよくなります。 お勧めします。 | |
Re:16進を10進に変換する方法 | |
江須扇 2006-8-5 18:14:00
[返信] [編集] はじめましてゼロさん、江須扇と申します。 2バイト単位しか利用できませんが、USAGE COMP-1 を利用したらいかがでしょうか? 全く違う利用例ですがこの掲示板の181番にUSAGE COMP-1 を使ったCOBOLリストが載っております。 | |
16進を10進に変換する方法 | |
ゼロ 2006-8-5 8:59:00
[返信] [編集] SYS@FDF内よりデータを抜き出してファイルを管理するデータベースを作りたいと思ったのですが、肝心な部分(更新回数、更新日等)が16進の為にそのままでは利用できませんでした。 COBOLで16進から10進に変換する方法を教えてもらえないでしょうか? COBOLを利用する以外の方法でもかまいませんのでお願いします。 | |
順序が逆では??? | |
EXCHANGE 2006-8-3 11:48:00
[返信] [編集] * DBを使った部分なら#DDMとか、RDBQ2等で調べれば分かると思います。 * ただ、事情はよく分からないのですが、 > 頑張って、目と手で1つ1つ変換しました。 > なんとか既存ファイルのレイアウトを確認する方法は無いものでしょうか? という下りはちょっといただけないのでは。。 先にCOPY句も含めてどこに入っているか確認してから コンバートした方が。。 > ファイルレイアウトの資料も怪しいものしかなく ということは、前任者とのコンタクトが取れない状況のように 思われます。 と、言うことは−−−>現在SULに入っているソースが 稼働中システムと一致しているとどうして保証できるのでしょうか??? * ソースコンバートによるマイグレーションは、 前任者の協力が必要な場合が多いように思います。 * 私だったら前任者の協力が得られない場合は、 新規システムとして構築しなおす(再構築する)でしょうね。 どのみち現時点となっては、 顧客側の要件も変わっているでしょうし。。 * すみません。取り越し苦労でしょうか。 | |
Re:変換するソースの指定画面での全ソース指定 | |
ゼロ 2006-8-3 11:16:00
[返信] [編集] ヨードさん始めまして 一般的かどうかは、分かりませんが私はCOPY句で使用するソースは別SULにまとめて管理するようにしています。 業務ごとにSULは分けていますがCOPY句で使用するSULは他業務でも使用することがあるのでファイルレイアウトの変更等が発生した場合の管理がしやすいからです。 COBOLソース内にどの登録集を使用しているか明記しておくといいかもしれません。 | |
Re:変換するソースの指定画面での全ソース指定 | |
ヨード 2006-8-2 20:55:00
[返信] [編集] 富山清風さん、ターラヤンさん ありがとうございました。 今まで全くさわったことのないA-VXで いきなりJSの登録なども怖かった^^;) ので 頑張って、目と手で1つ1つ変換しました。 ところで、 コピー句はSULに入ってないのが普通なのでしょうか? ファイルレイアウトの資料も怪しいものしかなく なんとかCOPY句でレイアウトと項目名を確認しようと 思っていたのですが、SULから変換したTEXTには無いようです。 なんとか既存ファイルのレイアウトを確認する方法は無いものでしょうか? (実はファイル定義のようなものを見たほうが確実?) レイアウトの件は、もとの質問からは外れるので 件名を新たにして別投稿とした方が過去ログで役にたつのかも 知れませんが、ご教示の程、宜しくお願いします。 | |
バグかな? | |
ターラヤン 2006-7-31 0:55:00
[返信] [編集] 本当は#NFCNVのところで、「PB1=&0_」とやりたかったのですが、なぜかエラーになってしまいました。 #NFCNVは置換機能も一時切り換え機能も使えないようです。 これらの機能が使えないのでは、バッチとして役に立ちません。 他のユーティリティに使えないものがあるのならばそういうものかと納得できますが、#NFCNVだけ使えないというのはバグではないのでしょうか? | |
Re:SMARTのデータ入力プログラムについて | |
ターラヤン 2006-7-31 0:37:00
[返信] [編集] 返事が遅くなりました。 「(8)プログラムを修正してみる」を追加してみましたが、いかがでしょう。 データを上書きするプログラムを追加するプログラムに直しています。 | |
Re:変換するソースの指定画面での全ソース指定 | |
ターラヤン 2006-7-31 0:26:00
[返信] [編集] たいしたものではありませんが、バッチプログラムを作ってみました。 いちいちパラメータを入力する必要がなくなります。 MSD000のSYS@JSLに入れてください。 名前は何でも良いですが、SUWINでもしてください。 使い方は、RUNコマンド行で「SUWIN,(RANDT);」のように「JS名,(変換したいSU名);」と入力して実行します。 /RUN #LBM,DEV=MSD; PRD=PRN999_MDE=MSD000_MFI=TESTAPSUL_ACT=SELECT_ODE=MSD000_OFI=TESTAPSEQ_ NAM=&0_ODE=999_ACT=999_DIR=NO_MDE=END_ /> ; /RUN #NFCNV,DEV=MSD; MN1=C_MN2=AD_PA1=MSD000_PA3=TESTAPSEQ_PA4=1_PA5=C80_ PB1=ZZZ.TXT_PB2=TXTJ_PB3=EXCLUSIVE_PB7=C_PB8=CREATE_ MN1=Q_ /> ; 上のプログラムをテキストファイルにして、 http://www.geocities.jp/tahrayan/utili/avxdos-cobol.html でJSに変換します。 #LBMのパラメータはMDE=MSD000,MFI=SYS@JSL,ACT=ADD,TYP=JCLとしてください。 | |
Re:変換するソースの指定画面での全ソース指定 | |
ターラヤン 2006-7-30 23:37:00
[返信] [編集] ヨードさん、はじめまして。 >変換するソースの指定画面の画面で「番号」か「ソース名」を入力しますが、 >ここで全ソースを指定したい場合はどのように入力したらよいのでしょうか? 仕組み上、ここでは1個づつしか選択できません。 全部のソースをいっぺんにコピーしたら、次々に上書きしていって結局最後の ソースしか順編成ファイル上に残らないのではないでしょうか。 ソースを順編成に変換→順編成ファイルをWindowsファイルに変換 →次のソースを順編成に変換→・・・ とループして最後のソースまで変換するようなJSを作れないかとも思った のですが、ちょっと無理そうです。 ちなみに、この場面では使えませんが、A−VXで全ファイルや全メンバを指定 する記号は「!」です。Windows(MS−DOS)の「*」と同じような ワイルドカードの役割を果たす文字です。 | |
Re:変換するソースの指定画面での全ソース指定 | |
ヨード 2006-7-28 13:01:00
[返信] [編集] 富山清風さん、早速の返信投稿ありがとうございます。 すいません。確かに質問の内容がとんでいますね。 オフコン練習帳のA-VX説明書で紹介されている 「A−VX COBOLソースをWindowsなどのテキスト形式ファイルに変換出力」 の中の話です。 その中の「<変換作業>(1)ソースユニットから順編成ファイルに変換」で 変換するソースを指定する画面(*** SUL DIRECTORY ***)です。 ですので、 ユーティリティとしては簡易操作ユーティリティ(#ABC)です。 複写(変換)機能(ファイル)を利用する場合の複写(変換)元ファイル内の レコード指定方法において、全レコードを指定する方法は? というのが質問の内容です。 これで上手く伝えられましたでしょうか? | |
Re:変換するソースの指定画面での全ソース指定 | |
富山清風 2006-7-28 12:28:00
[返信] [編集] ヨードさん たいへんですね 質問の意味がよく理解できず、/ユーティリィが分からないので なんともいえまでんが、 「番号」であれば たとえば、「1,2,3,4,8,9,10」、「1 4,8 10」(1スペース4,8スペース10) 「ソース名」であれば たとえば、「XXXXX1 XXXXXX4」ではないでしょうか ユーティリィ名が判かれば、もっと的確な回答ができると思います。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
BluesBB ©Sting_Band