過去の桐井戸端BBS (桐ver.8)
2784 K3ファイルからの表定義 Hiro 1999/9/30-11:11
桐Ver.8で、K3ファイルから読み込んで表を定義しようとしています。
K3ファイルで「項目名」,「データ型」のファイルを読み込むと、きちんと定義
されます。
ところが、項目計算式を定義するため、
K3ファイルで「項目名」,「データ型」,,,「項目計算式」のファイルを読み込むと
「項目名」と「データ型」のみセットされます。
項目計算式をK3ファイルから定義するにはどうすれば良いでしょうか?

どなたか教えてください。宜しくお願いします。
2795 Re: 悲しげ 1999/9/30-21:33
記事番号2784へのコメント
どもっ、Hiroさん、
会話処理・一括処理(cmd)の両方で試してみましたが、いずれも
うまく行きます(@V8sp2)。
やり方が間違っているのではないでしょうか?

>桐Ver.8で、K3ファイルから読み込んで表を定義しようとしています。
>K3ファイルで「項目名」,「データ型」のファイルを読み込むと、きちんと定義
>されます。
>ところが、項目計算式を定義するため、
>K3ファイルで「項目名」,「データ型」,,,「項目計算式」のファイルを読み
>込むと
>「項目名」と「データ型」のみセットされます。
>項目計算式をK3ファイルから定義するにはどうすれば良いでしょうか?

この記述の意味が判りません。(?_?)
表定義K3からの読み込みによる表作成では、項目値とデータ型だ
けとか、・・・と項目計算式だけとかを指定することはできない
はずです。全部含めて1本です。
そもそも表定義k3への書き出しも、そのような選択の余地はあり
ません、全部含めて1本だけのはずです。

ひょっとしてHiroさんは、「項目属性変更」のことを云っている
のでしょうか? こちらの場合だと、K3データを利用することは
できなかったと記憶しています。
2796 Re: 佐田 守弘 1999/10/1-00:20
記事番号2784へのコメント
Hiroさん
悲しげさんが書かれている通りなのですが、確認させて下さい。
読み込もうとした表定義内容のK3ファイルは、桐に書き出させたものでなく、手で
記述したものではないでしょうか。

表定義内容のK3ファイルを手で記述して作成することも不可能ではないのですが、
おそらくというか、ほぼ間違いなく、どこかで書き間違えをします。

もし手作業で作成されたものであったら、コマの数が違っていて、読み込むべき項目
がずれていないかを確認して下さい。
確認には、桐に書き出させたものと比較するのが一番です。

佐田守弘(KS-00119)
2799 Re: Hiro 1999/10/1-09:22
記事番号2796へのコメント
こんにちは>悲しげさん、佐田さん。
さっそくRESして頂きありがとうございます。
書き方が不十分で申し訳けございません。

>読み込もうとした表定義内容のK3ファイルは、桐に書き出させたものでなく、手で
>記述したものではないでしょうか。
はい。そのとおりです。手で記述したものです。

内容はつぎのとおりです。
Ver.8sp2

1.表定義で手書きしたK3ファイルで、レコードの内容は、先頭から

a)項目名,データ型 のみ −> 項目名、データ型は定義される
b)項目名,データ型,,,項目計算式 のみ
      −> 項目名、データ型は定義されるが項目計算式は定義されない
c)項目名,データ型,,,項目計算式,,,・・・(項目計算式以降52個のカンマ)
 ("許可"、"計算"、"する"などのないカンマを続けたもの)
      −> 項目名、データ型は定義されるが項目計算式は定義されない
d)確認のため、K3ファイルを書き出して定義内容をみる。
書き出したファイルには、先頭レコードの先頭に、### WIN桐 00 ### というような記号が
入っている。また、"許可"、"計算"、"する"などのパラメータが入っている。
d−1)この書き出したファイルを使って、読み込むと正常に項目計算式が定義された。
d−2)先頭レコードの先頭に、### WIN桐 00 ### というような記号を取って(手書きレ
コードと合わすため)読み込むと、次のエラーを表示。
KD1526:値が値集合の制約に市販しています
行番号:1[項目種別]
この属性には値を読み込めません
読み込みを続行しますか?
(以後他のレコードで同じ事がおきても、この確認をせず処理を続行します)
「はい」「いいえ」 <−ハイで実行
項目計算式は定義されない。

この結果、どうも先頭レコードの記号に鍵があるような気がします。
やはり、手書きされたファイルからの定義は難しいのでしょうか?

hiro
2814 MS-DOS版とWin版ではK3ファイルが異なります 佐田 守弘 1999/10/1-23:48
記事番号2799へのコメント
Hiroさん
従来のMS-DOS版の桐とWindows版の桐では、表定義のK3ファイルの内容が異なります。
これは、新旧の桐の表定義で設定する内容が違う事からご理解頂けると思います。
言うまでもなく、Windows版の方が定義する項目が増えておりますから、K3ファイルに書き出す際の書き出し項目
も増えているわけです。

そして、Windows版の桐はMS-DOS版の桐の表定義も読める必要があります。
しかし、従来版の桐のK3ファイルと、現在の桐のK3ファイルが混在した時に、どちらの内容かの区別が付かなくな
ります。
そこで、Windows版の桐では、このファイルはWindows版の表定義形式である事を識別するために、先頭部分にK3ファイルのコメント行の機能を使って、
  ###
  ### WIN桐 00
  ###
を設定する様になったのだと思います。そして、このコメント行があるK3ファイルはWindows版の桐
(正しくは桐ver.6以降から現在までの桐。多分この先もそうでしょう)の表定義と判断して読み込みます。
この行がない場合には、以前のMS-DOS版桐のK3ファイルとみなして、Windows版から登場した
設定項目は飛ばし、MS-DOS版と共通の設定項目だlけを読み込むのだろうと思います。

従いまして、手で記述したK3ファイルではWindows版の設定の積もりで記述しても上記の行が
なかったので、MS-DOS版桐のK3ファイルとみなされ、異なる設定項目に読み込まれたために、
発生したエラーだと考えます。

ですから、手作業でK3ファイルを書き出す時には、上記の3行を付け加える必要があります。

佐田守弘(KS-00119)

追伸:2行目の記述で、「00」は、表定義の構造のバージョンを表していると考えられますね。
おそらくは、もし将来的に表定義項目が再び変わる様な事があったとしたら、この数字が変わるの
でしょう。
「WIN桐」も、将来、Windowsに代わって別のOSが出たとしたら、何か別の名称が付くのかも知れ
ませんね。
管理工学らしい22世紀(?)を見越した遠謀深慮だと思います。
2815 Re:先頭に記号を入れたら読み込めました Hiro 1999/10/2-08:54
記事番号2814へのコメント
こんにちは、佐田さん。
RESありがとうございます。

先頭3レコードに
 ###
 ### WIN桐 00
 ###
を入れて、K3ファイルを読み込むとうまく項目計算式を定義できました。

また、桐Ver.8の表定義順に、K3ファイルを項目計算式まで記述し、以降の記述を省略しても、うまく項目計算式を定義
することができました。

ありがとうございました。

ところで、何でこんな事をするのかな? と、思われた方も多いのではないかと思います。

私はこの様な場面で使っています。
ある固定長ファイルを読み込み、このレコードを各項目に区切りたいとき、項目数が300くらいあると、
ひとつひとつの項目に、#部分列([str],n1,n2)を定義するのが大変なため、
予めEXCEL等で開始位置、バイト数を計算し、K3ファイルに編集して定義するときなどに使っています。

戻る