(現在 過去ログ1 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■22 / inTopicNo.1)  配列変数を利用した場合の置換について
  
□投稿者/ てつ -(2005/08/16(Tue) 13:48:17)
    たゆーさん、みなさん、こんにちは。 てつです。
    配列変数を利用した場合の置換について教えてください。
    
    もとの表を単純化して説明すると、
    
    &計算式[1]=[国語]+[数学]
    &計算式[2]=[国語]+[社会]
    というように、29個の配列変数を作っています。
    この配列変数をもとにして、
    表A(項目名に[国語][数学][社会]等及び[番号][計算結果]があります)
    [番号]が 1 の時には、[計算結果]の欄を &計算式[1] で置換して計算したいです。
    [番号]が 2 の時には、[計算結果]の欄を &計算式[2] で置換して計算したいです。
    
    そのため、一括処理で
     条件([番号] = &i) コマンド ”置換 [計算結果] =”+&計算式[”+#文字列(&i)+”]”
    
    として、試してみるのですが、KU1157:不正な配列の添字です とエラーが出て、
    結果を得ることができません。
    
    あるいは、
    条件([番号] = &i) コマンド ”置換 [計算結果] =”+&計算式+"[”+#文字列(&i)+”]”
    とすれば、KU1155:配列型変数には添字を指定してください というエラーが出ます。
     
    どのようにすれば、いいのでしょうか。
    よろしくお願いいたします。
    なお、OSはXP、桐は、Ver9-2005です。

引用返信 [メール受信/OFF] 削除キー/
■23 / inTopicNo.2)  Re[1]: 配列変数を利用した場合の置換について
□投稿者/ 宮城 -(2005/08/16(Tue) 14:46:10)
    ■No22に返信(てつさんの記事)
    
    この場合、配列変数使う必然性、ほとんどないと思います。[計算結果]を
    次式で置換すれば・・・
    
    #CASE([番号],国語]+[数学],[国語]+[社会])
    
    あくまで配列変数使おうとすると、かなり複雑なことになりますよ。こん
    な先頭から1行ずつの処理になります。
    
    その行で29個の配列変数を計算。[番号]によりどの配列変数を使うか決め、
    [計算結果]を行訂正。
    
    次の行で29個の配列変数を計算・・・。
    
    ちなみに、エラーの原因は&iに値を代入してないからってとこでしょう。
    
    # 【多遊】さん、どうもです。こういう場をつくっていただいて感謝いたします。
    

引用返信 [メール受信/OFF] 削除キー/
■24 / inTopicNo.3)  Re[2]: 配列変数を利用した場合の置換について
□投稿者/ 宮城 -(2005/08/16(Tue) 15:18:20)
    もうちょっと正確に書くと、必然性がないのは「配列変数」じゃなくて
    「変数」です。
    
    変数というのはいったん値を代入したら次に代入しなおすまで、全レコ
    ードに対して同じ値になります。各レコードの項目値を反映さえようと
    すると上記のようなややこしい処理になってしまいます。
    
     

引用返信 [メール受信/OFF] 削除キー/
■25 / inTopicNo.4)  Re[1]: 配列変数を利用した場合の置換について
□投稿者/ てつ -(2005/08/16(Tue) 16:36:55)
    説明不足で申し訳ありません。
    以下、そのまま一括処理を記述します。
    
    変数宣言 固有,整数{&i}
    変数宣言 固有,文字列{&計算式[29]}
    
    * 表を開いた状態で実行
     変数読み込み "配列変数.var"
    
     絞り込み解除
     繰り返し &i = 1,29,1
      絞り込み [番号] = &i
      ケース開始
       ケース(#総件数 > 0)
        コマンド ”置換 [計算結果] = ”+&計算式+"[”+#文字列(&i)+”]”
    *   コマンド ”置換 [計算結果] =”+&計算式[”+#文字列(&i)+”]”
       ケース その他
      ケース終了
      絞り込み 補集合
     繰り返し終了
    
    配列変数.var をテキストで書き出すと以下のようになっています。
    
    計算式,文字列,固有_[29]{
    [国語]+[社会]+[数学]+[理科]+[音楽]+[美術]+[保体]+[技家]+[英語]
    [国語]+[社会]+[数学]+[理科]+[音楽]+[美術]+[保体]+[技家]+[英語]*2
    [国語]*2+[社会]+[数学]+[理科]+[音楽]+[美術]+[保体]+[技家]+[英語]
    [国語]+[社会]*2+[数学]+[理科]+[音楽]+[美術]+[保体]+[技家]+[英語]
    この後、よく似た形で25の計算式が続いています。
    
    先述していた 
    条件([番号] = &i)コマンド ”置換 [計算結果] = ”+&計算式+"[”+#文字列(&i)+”]”
    の先頭部分の条件([番号] = &i)は、不要なことが分かり削除しました。
    
    この一括処理で計算結果を出したいのですが、どのように変えればよいでしょうか。
    よろしくお願いいたします。
    

引用返信 [メール受信/OFF] 削除キー/
■26 / inTopicNo.5)  Re[2]: 配列変数を利用した場合の置換について
□投稿者/ T.Samura -(2005/08/16(Tue) 17:25:44)
    > *   コマンド ”置換 [計算結果] =”+&計算式[”+#文字列(&i)+”]”
         コマンド ”置換 [計算結果]=&計算式[”+#文字列(&i)+”]”
    でどうでしょうか?
    
    あと
    >絞り込み 補集合
    は絞り込みが深くなりすぎるので「絞り込み解除」が適切かと思います。
    
    繰り返し無しで一気に置換するなら、
    置換 [計算結果]=#cond(([番号]≧1).and([番号]≦29),#変数("計算式",[番号]),1,[計算結果])
    でも良さそうですけど、未確認です。
    

引用返信 [メール受信/OFF] 削除キー/
■28 / inTopicNo.6)  Re[1]: 配列変数を利用した場合の置換について
□投稿者/ てつ -(2005/08/16(Tue) 17:57:39)
    Samuraさん、ありがとうございます。
    
    早速試してみました。
    コマンド ”置換 [計算結果]=&計算式[”+#文字列(&i)+”]”に置き換えてみたところ、
    
    KD1620:式の結果が代入または変換できないデータ型です &計算式[1]
    
    となりました。
    
    また、
    置換 [計算結果]=#cond(([番号]≧1).and([番号]≦29),#変数("計算式",[番号]),1,[計算結果]) の方は、
    
    KD1620:式の結果が代入または変換できないデータ型です 
    
    となりました。
    
    ちなみに、当然[計算結果]のデータ型は、整数型にしてあります。
    

引用返信 [メール受信/OFF] 削除キー/
■29 / inTopicNo.7)  Re[2]: 配列変数を利用した場合の置換について
□投稿者/ T.Samura -(2005/08/16(Tue) 18:12:28)
    2005/08/16(Tue) 19:29:54 編集(投稿者)
    てつさんへ。
    
    &計算式[]には各項目を組み合わせた計算式文字列が入っているのですね。
    先に示した内容だと[計算結果]に計算式文字列を入れるのでエラーのようです。
    
    気を取り直して考えてみると
    *   コマンド ”置換 [計算結果] =”+&計算式[”+#文字列(&i)+”]”
     &STR=#CAT("置換 [計算結果]=",#変数("計算式",&i))
     コマンド &STR
    と一旦文字列変数に入れてコマンドコマンドを試してみてください。

引用返信 [メール受信/OFF] 削除キー/
■33 / inTopicNo.8)  Re[3]: 配列変数を利用した場合の置換について
□投稿者/ てつ -(2005/08/16(Tue) 19:43:44)
    ■No29に返信(T.Samuraさんの記事)
    
    >  &STR=#CAT("置換 [計算結果]=",#変数("計算式",&i))
    >  コマンド &STR
    > と一旦文字列変数に入れてコマンドコマンドを試してみてください。
    
    早速試してみました。最後まで、置換できました。
    いったん文字列変数に入れることがこの場合必要だったのですね。
    ありがとうございました。  てつ

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■34 / inTopicNo.9)  Re[4]: 配列変数を利用した場合の置換について
□投稿者/ T.Samura -(2005/08/16(Tue) 20:13:15)
    ■No33に返信(てつさんの記事)
    
    もう一点、
    >ケース(#総件数 > 0)
    #総件数は削除件数も含まれるので「ケース(&選択件数 > 0)」の方が良いと思います。
    
    余談ですが、
    繰り返し無しで一気に置換する方法を考えましたが、文字列を計算式として扱うのが
    コマンドコマンドしかなさそうなので断念しました。
    どうしても数値に文字列を代入する形になってしまい、
     置換 [計算結果]="[国語]+[社会]+[数学]+..." 
    というようにしか展開されません。#計算式変換(str)とかいう関数相当は無いのでしょうか。

引用返信 [メール受信/OFF] 削除キー/
■38 / inTopicNo.10)  (削除)
□投稿者/ -(2005/08/16(Tue) 23:03:29)
    この記事は(投稿者)削除されました
引用返信 [メール受信/OFF] 削除キー/
■39 / inTopicNo.11)  「#対応文字列」関数と「コマンド」コマンドの組合わせで
□投稿者/ 佐田 守弘 -(2005/08/16(Tue) 23:06:59)
http://www.m-sada.com
    ■No38に返信(佐田 守弘さんの記事)
    > てつさん
    > 次の様な方法が分りやすいかも知れません。
    >  代入 &計算式=#対応文字列("[国語]+[数学],[国語]+[社会],・・・",&i)
    >  コマンド "行訂正 [計算結果]="+&計算式
    > これを繰り返しコマンドで行毎に繰り返します。
    > > 佐田 守弘
    > > #34のT.Samuraさんの
    >  >#計算式変換(str)とかいう関数相当は無いのでしょうか。
    > があれば良いのですが、現状としては文字列で記述してある計算式を計算式として
    > 実行させるには「コマンド」コマンドを使うしかないのでしょうね。

引用返信 [メール受信/OFF] 削除キー/
■40 / inTopicNo.12)  Re[5]: 配列変数を利用した場合の置換について
□投稿者/ てつ -(2005/08/16(Tue) 23:12:44)
    ■No34に返信(T.Samuraさんの記事)
    
    (&選択件数 > 0) に、早速かえておきました。
    削除行もあるので、こちらの方がよりベターなのですね。
    
    今回、#CAT(#連結)や#変数など、今まで使ったことのない関数も教えていただきました。
    とても、助かりました。
    今後ともよろしくお願いいたします。ありがとうございました。  てつ

引用返信 [メール受信/OFF] 削除キー/
■41 / inTopicNo.13)  Re[3]: 「#対応文字列」関数と「コマンド」コマンドの組合わせで
□投稿者/ てつ -(2005/08/17(Wed) 06:28:56)
    ■No39に返信(佐田 守弘さんの記事)
    佐田さん、ありがとうございます。
    #対応文字列を使うやり方も行いました。
    最初、括弧がバランスしていませんというエラーが出ました。
    一部に+#大([国語],[数学],[英語])等が入っていたためです。
    そこで、これらを新しく項目を作っておいて先に計算させておいてその項目名を指定するようにすれば、
    そのまま &STRを使わなくてもスムースに計算できました。
    以上、結果報告でした。  てつ

解決済み!
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -