過去の桐井戸端BBS (桐ver.8)
4320 コマンド「読み込み」について つぐ 2000/1/26-17:07
桐8SP3で桐5で作成した動作を検証していたのですが、
桐5には存在しなかった配列変数がネックになってしま
っています。

代入 &項目1=#文字列(&項目番号)
代入 &項目2=#文字列(&項目番号+1)
代入 &項目3=#文字列(&項目番号+2)

読み込み 表,1,{[年度][募集年度],[合計],\
&項目1[2-1],&項目2[2-2],&項目3[3-1]}

上記のように読み込み元の項目を変数で指定し、
読み込み先を実際の項目名で指定しています。
桐5では問題なく動作するのですが、
桐8では配列変数が存在するため、&項目[**]
というところで、[]内を配列変数の添字と解釈してしまい
&項目1の定義は配列ではないので、添字は持てませんという
エラーが出ます。

マニュアルの配列変数の欄を見るとまさに
&変数名[添字]の書式が出ており、
頭を悩めているところです。

どなたかご教授いただけると感動ものです。
よろしくお願いします。

4321 Re:コマンド「読み込み」について 幅田 2000/1/26-17:55
記事番号4320へのコメント
つぐさん、こんにちは

>桐8SP3で桐5で作成した動作を検証していたのですが、
>桐5には存在しなかった配列変数がネックになってしま
>っています。
>
>代入 &項目1=#文字列(&項目番号)
>代入 &項目2=#文字列(&項目番号+1)
>代入 &項目3=#文字列(&項目番号+2)
>
>読み込み 表,1,{[年度][募集年度],[合計],\
>&項目1[2-1],&項目2[2-2],&項目3[3-1]}
>

「コマンド」コマンドを使えばできると思います。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

代入 &項目1=#文字列(&項目番号)
代入 &項目2=#文字列(&項目番号+1)
代入 &項目3=#文字列(&項目番号+2)

コマンド 
 +&項目1+

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

「コマンド」コマンドを使えば、指定した文字列を一括処理コマンドとして実行
することができます。

したがってこの例の場合、”読み込み・・・・[3-1]}”の文字列を
一括処理コマンドとして実行することになります。

4323 Re:コマンド「読み込み」について つぐ 2000/1/26-18:38
記事番号4321へのコメント
>「コマンド」コマンドを使えばできると思います。
>
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>
>代入 &項目1=#文字列(&項目番号)
>代入 &項目2=#文字列(&項目番号+1)
>代入 &項目3=#文字列(&項目番号+2)
>
>コマンド 
> +&項目1+
>
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>
>「コマンド」コマンドを使えば、指定した文字列を一括処理コマンドとして実行
>することができます。
>
>したがってこの例の場合、”読み込み・・・・[3-1]}”の文字列を
>一括処理コマンドとして実行することになります。
>
幅田さん書きこみありがとうございました。
つぐです。
ためしてみました。残念ながら「重複指定はできません」という
エラーが表示されました。変数の問題は実行の過程をみると
大丈夫なようなのですが、これを回避する
なにか、いい方法を考えて見ます。

では
4324 Re:コマンド「読み込み」について 宮城 2000/1/26-18:59
記事番号4320へのコメント
>読み込み 表,1,{[年度][募集年度],[合計],\
>&項目1[2-1],&項目2[2-2],&項目3[3-1]}

??? 疑問。&項目1[2-1]だなんてなんで「[2-1]」なんかつけたん
ですか?V5じゃあ「[]」は変数名に含められなかったから、配列変数を
勉強しようとしてつけたのでしょうか。つけなければ動くと思いますけど。

とすると、配列変数はどんなときどう使うかを例示しときます。(以下、
必要な変数宣言はされてる前提)。

5日分在庫受け払いやる場合、&在庫0(=初期在庫)、&受け1〜5、
&払い1〜5、を入力させておいて、

&在庫1=&在庫0+&受け1−&払い1
  ・
  ・
  ・
&在庫5=&在庫4+&受け5−&払い5

としますか、という話です。

配列変数を使えばこうなります。

繰り返し &日=1,5
 &在庫[&日]=&在庫[&日−1]+&受け[&日]−&払い[&日]
繰り返し終了

こんな風に&日のようなパラメーター変数とセットで使わないと意味が
ありません。

実際は、初期値・最終値も変数にする場合が多いでしょう。

4325 Re:コマンド「読み込み」について 幅田 2000/1/26-23:13
記事番号4323へのコメント
>ためしてみました。残念ながら「重複指定はできません」という
>エラーが表示されました。変数の問題は実行の過程をみると
>大丈夫なようなのですが、これを回避する
>なにか、いい方法を考えて見ます。

おかしいですね。
私が書いた一括処理(「コマンド」コマンドの部分)をそのまま
コピー&貼り付けで一括処理にはりつけ、後必要な表定義と
データを作って(項目名もそのままで)試してみたらちゃんと
読み込みできましたが...
もちろん桐v8sp3です。


>「重複指定はできません」
このエラーはどこか別の部分に原因があるのではないでしょうか?

4326 Re:コマンド「読み込み」について 幅田 2000/1/26-23:34
記事番号4324へのコメント
>>読み込み 表,1,{[年度][募集年度],[合計],\
>>&項目1[2-1],&項目2[2-2],&項目3[3-1]}
>
>??? 疑問。&項目1[2-1]だなんてなんで「[2-1]」なんかつけたん
>ですか?V5じゃあ「[]」は変数名に含められなかったから、配列変数を
>勉強しようとしてつけたのでしょうか。つけなければ動くと思いますけ
>ど。

つぐさんは、配列変数を勉強しようとしてつけたわけじゃなく、
読み込みコマンドを実行する際に、桐v5では項目名の代わりに項目番号で
読み込み先の項目を指定していたのですが、桐v8では変数の後に[]がくると
配列変数とみなされてしまうため、エラーになるとおっしゃってるみたいです。


別コメントでは、「コマンド」コマンドを使いましたが、桐v5のリファレンスを
よく見ると、読み込み先の項目を変数で指定する場合、読み込み元の項目の[]とは
空白を1つ以上入れなさいと書いてあります。
つぐさんの書かれたものをみると、空白が入っていませんね。
空白がないと確かに配列変数とみなされてしまいますが、もう一度この一括処理を
見直して下記のように書き換えてみました。
なお、&項目1、&項目2、&項目3の変数は数値型の変数として宣言しておきます。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
代入 &項目1=&項目番号
代入 &項目2=&項目番号+1
代入 &項目3=&項目番号+2

読み込み 表,1,{[年度][募集年度],[合計],\
  &項目1 [2-1],&項目2 [2-2],&項目3 [3-1]}

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

つぐさんの書かれたものとの微妙な違いは、&項目1、&項目2、&項目3の
次に1つの空白が入っているところです。

これで、試してみたところエラーもおきずに読み込みできました。

なお、たとえば

代入 &項目1=&項目番号
代入 &項目2=&項目番号

のようのタイプミスをして、&項目1にも&項目2にも同じ値が入って
しまった場合、

「重複指定はできません」

というエラーが出ました。

上記のやり方にするのか、「コマンド」コマンドを使うのかは、
お好み次第でしょう。

4327 動作確認できました。 つぐ 2000/1/27-10:50
記事番号4326へのコメント
幅田さんありがとうございました。
>
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>代入 &項目1=&項目番号
>代入 &項目2=&項目番号+1
>代入 &項目3=&項目番号+2
>
>読み込み 表,1,{[年度][募集年度],[合計],\
>  &項目1 [2-1],&項目2 [2-2],&項目3 [3-1]}
>
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>
>つぐさんの書かれたものとの微妙な違いは、&項目1、&項目2、&項目3の
>次に1つの空白が入っているところです。
>
>
>代入 &項目1=&項目番号
>代入 &項目2=&項目番号
>
>のようのタイプミスをして、&項目1にも&項目2にも同じ値が入って
>しまった場合、
>
>「重複指定はできません」
>
>というエラーが出ました。
>
2つとも、ためしてみると、意図したとおりに動作しました
本当にありがとうございました。

4328 Re:コマンド「読み込み」について 宮城 2000/1/27-10:55
記事番号4326へのコメント
な・る・ほ・ど。

配列パラメーター識別に[]が使われたことにより勘違いしちゃいましたね。
読み込み元項目名だったとは。それがまた、引き算にみえるもんだから。
(ち・苦笑・・・。だめ・・・。爆)

ただ、くっついてるのがいけないなら、V5でもやはりいけないはずですけど。


4329 Re:動作確認できました。 宮城 2000/1/27-11:33
記事番号4327へのコメント
つぐさんへ

知ってる人は誰でも知ってるノウハウを一つ。一括処理全体書き上げてさあチェックは
避けて下さい。バグが散乱した状態で動かすとどうなるか。つぶしてもつぶしても次の
バグで落ちるとか、直接落ちてるポイントと違うバグをみつけてつぶすけど当然やはり
落ちるとか、疑心暗鬼におちいってまちがってないところ直しちゃうとか、はては桐を
疑いだすとか(これもないとはいえないのが困る!)、精神衛生上よくありません。

ある程度まとまりはあるはずなので、そのまとまり単位でチェックするようにしたほう
がよろしいです。

どうやって? ブレークポイント活用、V5以前ならとめたいポイントで「表形式編集」
と未定義変数をセットで入れます。

戻る