過去の桐井戸端BBS (桐ver.8)
13758 一括処理で#順位関数の引数に項目番号や変数を使用したい。 atsats 2001/10/31-16:30
お世話になります。
桐v8sp6にて

一括処理の記述の中で表のある項目の順位を計算したい場合、

ある特定の項目であれば、
置換 [順位を入れたい項目]=#順位([順位の元となる項目])
と、具体的に記述すればいいのですが、

状況によっていろいろ項目を変えたい場合に、
順位関数の引数に変数や計算式などを使えると便利なのですが、
項目番号や変数に代入した項目名ではエラーがでてしまいます。

何か良い方法はあるのでしょうか。
13760 Re:一括処理の中での#順位の記述 アックン 2001/10/31-17:45
記事番号13758へのコメント
atsatsさん、こんばんは。
コマンド(eval)を使ってみてはどうでしょうか。
(マニュアル V8一括編 P.241)

>置換 [順位を入れたい項目]=#順位([順位の元となる項目])

これをコマンドコマンドで書くとすると、こんな風になります。
まず項目名を取得する変数(&順位を入れたい項目・&順位の元となる項目)を
用意しておきます。

&順位を入れたい項目 = "B"
&順位の元となる項目 = "A"
コマンド "置換 ["+&順位を入れたい項目+"]=#順位(["+&順位の元となる項目+"])"

このように、文字列と変数名を+記号で連結して、コマンドを発行するのがコマンドコマンドです。
( +記号の前後に空白を置かないでください。)

上記変数名の部分は、項目名を返す計算式でも結構です。

アックン(=^・^=)
13762 Re:一括処理の中での#順位の記述 幅田 2001/10/31-18:30
記事番号13758へのコメント
atsatsさん
こんにちは。
アックンさんからすでにお答えをいただいておりますが、
↓も参考にしてみてください。
http://www.fuku3.com/~habata/kbbs/kakov8/03189.htm
13784 成功しました。でも、理解できません atsats 2001/11/01-16:16
記事番号13760へのコメント
早速のご教示ありがとうございました。


>&順位を入れたい項目 = "B"
>&順位の元となる項目 = "A"
>コマンド "置換 ["+&順位を入れたい項目+"]=#順位(["+&順位の元となる項目
>+"])"

おかげさまでうまくいき、一括処理ファイルの行数も短くなり、満足しています。
ただ、私には上の記述が理解できなくて、頭を悩ませています。

上の置換の式は結局
置換 ["+B+"]=#順位(["+A+"])
のようになってしまわないのでしょうか?

13785 Re:成功しました。でも、理解できません 【多遊】 2001/11/01-18:26
記事番号13784へのコメント
文字の連結は、

>&順位を入れたい項目 = "B"
>&順位の元となる項目 = "A"

>コマンド "置換 ["+&順位を入れたい項目+"]=#順位(["+&順位の元となる項目
>+"])"

>上の置換の式は結局
>置換 ["+B+"]=#順位(["+A+"])
>のようになってしまわないのでしょうか?


+は、文字列の連結ですので、"あああ"+"いいい"の場合 → これは、「あああいいい」 になります。

そこで、上記より変数部分を除くと、式はコマンド "置換 ["+"]=#順位(["+"])" と、なり
結果は
コマンド "置換 []=#順位([])" →と、なります

また、変数が利用されている場合は変数値に置換えられます。

&変数a="3"
&変数b="2" の場合、

&変数a+&変数b の結果は 「32」と、なります。

単純に「”(ダブルコーテーション)」の中をつないでいきます。


ゆっくり考えてくださいね

13790 Re:成功しました。でも、理解できません アックン 2001/11/01-18:53
記事番号13785へのコメント
いったん発行したいコマンド一式を変数に代入しておいて、
 &STR = """置換 [""+&B+""]=#順位([""+&A+""])"""
 コマンド &STR
としてもいいです。私はこの使い方します(ってことはどうでもよかった)。

と、ゆっくり考える間もなく、ますますややこしくしてますね。(^^;
今頃、悲しげさんはアスピリンを欲していると思う。(^^;

Thanks>【多遊】さん

アックン(=^・^=)

13795 わかった! atsats 2001/11/01-22:27
記事番号13790へのコメント
みなさん、ありがとうございました。
ついにわかりました。
これで今夜はゆっくり眠れます。

""で囲んでいるものは文字列ということは知っているつもりでしたが、
今回は見た目で[]にだまされていました。

次の式は見やすく改行すると

コマンド "置換 ["+&順位を入れたい項目+"]=#順位(["+&順位の元となる項目+"])"


コマンド
"置換 ["
&順位を入れたい項目
"]=#順位(["
&順位の元となる項目
"])"

ということですね。

&順位を入れたい項目
の前後に"+があるので項目名の指定かと思ってしまいました。
アックンさんのスペースを入れないようにという意味もそのときは分かりませんでした。

なんかずいぶんくだらないところで悩んでいたみたいです。
お騒がせしました。また、よろしくお願いします。

戻る