C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: VBでCOBOLのCOMP−3データを対応する方法


(過去ログ 17 を表示中)

[トピック内 15 記事 (1 - 15 表示)]  << 0 >>

■6593 / inTopicNo.1)  VBでCOBOLのCOMP−3データを対応する方法
  
□投稿者/ ダウンサイジング苦労 (1回)-(2007/08/20(Mon) 10:04:35)

分類:[VB6 以前] 

COBOLシステムをPCにダウンサイジングしました。
これにVBのプログラムを接続しようと考えています。
処がCOBOLシステムはTXTファイルにCOMP−3
を多用しています。
何方かVBでCOBOLのCOMP−3の作成及び読込み
を行える方法を教えて下さい。
引用返信 編集キー/
■6608 / inTopicNo.2)  Re[1]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ まどか (357回)-(2007/08/20(Mon) 14:05:10)
> 処がCOBOLシステムはTXTファイルにCOMP−3
> を多用しています。

基本的にCOBOLにテキストファイルは無いはず。
したがって、ほとんどがBinaryアクセスすることになります。
ということは
・Binaryモードでの入出力
・Byte型(配列)とVBの型との相互変換
を実装することになります。
特に後者は組み合わせがはっきりしているのでライブラリ化しておくのがよいと思います。

> 何方かVBでCOBOLのCOMP−3の作成及び読込み
> を行える方法を教えて下さい。

COMP-3がどのような内部形式であるかがわかれば、前述のとおりByteデータの解析と対応するVBの型への変換になります。
http://support.microsoft.com/kb/65323/ja

他に挙げるとすれば、
・COBOLデータの精度と対応するVB側の数値型の決定。たとえば?桁以上ならLong、未満ならIntegerとか。
・文字コード
・COMPの桁数とデータサイズ
・9タイプおよびS9タイプの先頭符号ビット
などなど。
引用返信 編集キー/
■6650 / inTopicNo.3)  Re[2]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ぼのぼの (67回)-(2007/08/21(Tue) 14:28:04)
> 基本的にCOBOLにテキストファイルは無いはず。
まぁ9,X,Nのみで構成されてればテキストファイルと言えなくもないですけどね(^^;

トータルの性能を考えるとあまり良い案とは言えないですが、
COBOLでテキストデータのみのファイルに変換するプログラムを作ってしまうのも
一つの案ではありますね。
引用返信 編集キー/
■6658 / inTopicNo.4)  Re[3]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ まどか (359回)-(2007/08/21(Tue) 15:50:25)
No6650 (ぼのぼの さん) に返信
> まぁ9,X,Nのみで構成されてれば
> COBOLでテキストデータのみのファイルに変換するプログラムを作ってしまうのも
> 一つの案ではありますね。

確かに数値はS9,999V99とかにぶち込めばいいわけですからね。

VB6ということですので、私が言ったライブラリ化についてはVB6の資産という観点で見るかどうかで決めればよいのかなと。
引用返信 編集キー/
■6741 / inTopicNo.5)  Re[4]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 (3回)-(2007/08/23(Thu) 08:50:45)
> 基本的にCOBOLにテキストファイルは無いはず。
すみません。詳細をもう少し申し上げると、我が社ではIBM(汎用機)で
COBOLによる大規模なシステム開発を行っていました。尚、データの保
存はシーケンスファイル及びVSAMファイルで行ってきました。
このシステムをダウンサイジングし、シーケンスファイルはテキストファイ
ルへVSAMはそのままVSAMかオラクルに置き換えました。
シーケンスファイルの数値はCOMP−3が多く
たとえば 5バイトCOMP−3で数値=110の場合
----+----+----
 00010 
0001c
----+----+----
となっています。
このデータをVBで110と読み込んだり、逆に120に更新したいのです。
何方かご存知の方、教えて下さい。

引用返信 編集キー/
■6742 / inTopicNo.6)  Re[5]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 (4回)-(2007/08/23(Thu) 08:52:16)
No6741 (ダウンサイジング苦労 さん) に返信
すみません数値の表示がずれてしまいました。
正確には
----+----+----
00010 
0001c
です。

引用返信 編集キー/
■6743 / inTopicNo.7)  Re[4]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 (5回)-(2007/08/23(Thu) 08:58:51)
すみません。
質問の仕方が悪かった様子です。
再度説明させて頂きますと、我が社ではCOBOLによる
大規模なシステムを長年構築してきましたが、それをUNIX
及びPCにダウンサイジングしました。
データは殆どシーケンスファイルですのでこれをテキストファ
イルにして今後も活用しようとしています。尚、数値項目は
COMP−3で保管しており、5バイト 数値=170の場合
----+-----
00010
0007c
----------
で保管されています。
これをVBで読み込み及び更新をしたいのです。
何方か良い方法をご存知ないでしょうか?

引用返信 編集キー/
■6745 / inTopicNo.8)  Re[5]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ y4yama (15回)-(2007/08/23(Thu) 09:12:02)
No6743 (ダウンサイジング苦労 さん) に返信
数値項目は
> COMP−3で保管しており、5バイト 数値=170の場合
> ----+-----
> 00010
> 0007c
> ----------
> で保管されています。
> これをVBで読み込み及び更新をしたいのです。

Packed10進で、4bitずつ(を1桁)で並べたら、000000170c となるのですね
1byte毎ででも力ずくで計算すれば、できそうだし・・・VBは?.netなの?
 >良い方法 <どこがわからないのでしょうか?
引用返信 編集キー/
■6746 / inTopicNo.9)  Re[5]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ よねKEN (69回)-(2007/08/23(Thu) 09:15:54)
よねKEN さんの Web サイト
> これをVBで読み込み及び更新をしたいのです。
> 何方か良い方法をご存知ないでしょうか?

まどかさんが
>COMP-3がどのような内部形式であるかがわかれば、
>前述のとおりByteデータの解析と対応するVBの型への変換になります。
http://support.microsoft.com/kb/65323/ja

と回答されていると思うのですが、これについてのコメントがありません。
何か問題があるのでしょうか?
#何か問題があるにしてもそれを書かなきゃわからないし、
#単に見落としているにしても、無視しているにしても失礼だと思います。




引用返信 編集キー/
■6747 / inTopicNo.10)  Re[6]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ れい (49回)-(2007/08/23(Thu) 09:19:22)
No6745 (y4yama さん) に返信
> ■No6743 (ダウンサイジング苦労 さん) に返信
>>----+-----
>>00010
>>0007c
>>----------

これを

> Packed10進で、4bitずつ(を1桁)で並べたら、000000170c となるのですね

こう読めるのはすばらしい読解力だと思った。

COMP-3もBCDも知っているのに読めませんでした。
縦に読むのかな?かな?

引用返信 編集キー/
■6748 / inTopicNo.11)  Re[6]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 (6回)-(2007/08/23(Thu) 09:51:20)
まどか様
よねKEN様の仰る通り大変失礼いたしました。
正直言いまして見落としていました。(と言うより多分当方の環境問題で
表示されませんでした。NO5からNO6を提出した後も表示されず、NO6を
再度書き足したのですが、後で見るとNO2NO5、NO6も見ることが出来ま
した。)他の皆様にも大変失礼いたしました。

まどか様の教えて頂いたアドレスを参考にさせて頂きます。
引用返信 編集キー/
■6753 / inTopicNo.12)  Re[5]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ぼのぼの (68回)-(2007/08/23(Thu) 10:40:31)
本筋とは異なるところへの突っ込みで恐縮ですが。

No6743 (ダウンサイジング苦労 さん) に返信
> データは殆どシーケンスファイルですのでこれをテキストファ
> イルにして今後も活用しようとしています。尚、数値項目は
> COMP−3で保管しており、

COMP−3を含んでいる時点で「テキストファイル」とは言わないのではないでしょうか?
メモ帳などのテキストエディタで編集できるファイルが「テキストファイル」ですよね?
#対応してない文字コードは、とかの突っ込みはなしで(^^;

単語も適切に使わないと混乱を招きますので。

引用返信 編集キー/
■6754 / inTopicNo.13)  Re[7]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ぼのぼの (69回)-(2007/08/23(Thu) 10:55:01)
ん?勘違い?
シーケンスファイルをVBでテキストファイルに変換して、
それを今後活用したい、という意味か?
だとしたら申し訳ない…

でもその前の書き込みで
No6741 (ダウンサイジング苦労 さん) に返信
> このシステムをダウンサイジングし、シーケンスファイルはテキストファイ
> ルへVSAMはそのままVSAMかオラクルに置き換えました。

て書いてるしなぁ…

> シーケンスファイルの数値はCOMP−3が多く
> (中略)
> このデータをVBで110と読み込んだり、逆に120に更新したいのです。

せっかく置き換えたのに置き換え前のファイルを読み書きする?
それとも「置き換えました」じゃなくて「置き換えたい」の間違い?

結果的にやりたいことは変わらないのかもしれませんが、
要件とか経緯とかを理解しておくことは大切ですからね。
引用返信 編集キー/
■6757 / inTopicNo.14)  Re[8]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ ダウンサイジング苦労 (7回)-(2007/08/23(Thu) 11:54:08)

解決しました。

皆さん有難うございます。

          
解決済み
引用返信 編集キー/
■6799 / inTopicNo.15)  Re[9]: VBでCOBOLのCOMP−3データを対応する方法
□投稿者/ 片桐 (43回)-(2007/08/23(Thu) 23:32:46)
片桐 さんの Web サイト
No6757 (ダウンサイジング苦労 さん) に返信
>
> 解決しました。
>
> 皆さん有難うございます。
>
>
おつかれさまです。

COBOLのCOMP-3データが格納された汎用機のデータ、おそらくはDSNに格納されたデータをPCへ、というお話なのでしょうけれど、それをそのままテキストファイルとして扱うのは確実に「ムリ」なのでバイナリファイルとして扱うか(それならCの方がよいのですけれどね)、EASYもしくはGenarを通して固定長もしくはカンマ区切りのテキストにしたDSNへの保管JCLが必要になるかと思います。要件的にJCLはもう使わない、というのであれば、COBOLでのCOMP-3でも、PIC句でいったんテキストにしてしまう方法もありますけれど……

解決された、との事ですので、後学のために、情報をフィードバックしていただけるとモニターの向こうで喜ぶ人たちが結構いらっしゃるんじゃないかなぁ(ぼそ)         
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -