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

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

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

■7114 / inTopicNo.1)  途中で、配列用素数を変更する方法
  
□投稿者/ くおんたむ -(2012/07/11(Wed) 23:53:23)
    タイトルの通りですが、すでに宣言した配列用素数を
    後で、変更させることは、可能でしょうか?

    VBSであれば「ReDim」と同じような事をイベントで行
    いたいのですが。。。(^_^;)

    何か、裏技的なものがあれば教えて頂きたいのですが。
    変数は、出来れば固有か局所でお願いいたします。

    宜しくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■7115 / inTopicNo.2)  Re[1]: 途中で、配列用素数を変更する方法
□投稿者/ うにん -(2012/07/12(Thu) 10:59:51)
    > VBSであれば「ReDim」と同じような事をイベントで行
    > いたいのですが。。。(^_^;)

    削除して宣言し直すぐらいでしょうけど、イベントだと削除できないですね。

    > 何か、裏技的なものがあれば教えて頂きたいのですが。
    配列でなく変数名に数字を後置するとか?

    &番号 = 5 のとき、&作業5 の値を取り出します。
    #変数( "作業" + #文字列( &番号 ) )
    なんてサンプルがあります。
引用返信 [メール受信/OFF] 削除キー/
■7116 / inTopicNo.3)  #対応番号と#対応文字列を利用する
□投稿者/ ONnoji -(2012/07/12(Thu) 11:44:32)
    No7114に返信(くおんたむさんの記事)
    > タイトルの通りですが、すでに宣言した配列用素数を
    > 後で、変更させることは、可能でしょうか?
    > VBSであれば「ReDim」と同じような事をイベントで行
    > いたいのですが。。。(^_^;)

    配列変数を一度削除して、新たに宣言するしか方法がありませんが、
    局所変数では、変数を削除すること自体が出来ないですね。

    ※固有変数も、変数を削除できない場合があると思います。

    > 何か、裏技的なものがあれば教えて頂きたいのですが。
    > 変数は、出来れば固有か局所でお願いいたします。

    裏技でもなんでもありませんが…

    もしも、1次元の配列ならば、

    半角コンマで区切った文字列を利用することも可能ですよ。

    具体例は以下を参考にしてください。


    【参考】桐のイベント道場 かっこうBBS (三代目)より引用
    #対応番号と#対応文字列を利用する 投稿者:ONnoji 投稿日:2011年10月30日(日)10時31分39秒

    二つの文字列、仮に &Aストリング ・ &Bストリング を用意して、

    &Aストリング の中の文字出現位置を、仮に &at として、

    &Bストリング の文字位置 &at の文字列を取り出す。

    この方法はdBASE言語の時からよく利用しました。

    ちなみに、桐の場合には、半角コンマで区切った文字列に対して、

    #対応番号 で &Aストリング の &at が求められますので、

    逆関数の、#対応文字列 で &Bストリング の文字列を取り出します。

    これは私( ONnoji )が非常によく使う手法ですよ。
    ※私のライブラリの中にはた〜くさんありますよ。変数名に List という文字を使っています。

    配列変数を用意して、要素番号1から順番に調べるよりも簡単でしょう。

    以下に具体例を示しますので、参考にしてください。


    フォームアプリケーション入門§2
    テキストボックスの入力前・入力後・ソース値更新イベント
    http://www.geocities.jp/siliconvalley_bay_7565/guide02.htm#tori より
     ↓

    手続き定義開始 txtToriCode::ソース値更新( )

      &mToriName = "********"
      条件 (&mToriCode="11") &mToriName = "注文仕入"
      条件 (&mToriCode="12") &mToriName = "注文返品"
      条件 (&mToriCode="21") &mToriName = "委託仕入"
      条件 (&mToriCode="22") &mToriName = "委託返品"
      条件 (&mToriCode="91") &mToriName = "その他仕入"
      条件 (&mToriCode="92") &mToriName = "その他返品"

    手続き定義終了

     ↓
     ↓
     ↓

    手続き定義開始 txtToriCode::ソース値更新( )
     変数宣言 自動,文字列{ &codeList, &nameList }
     変数宣言 自動,整数 { &at }

     &codeList = "11 ,12 ,21 ,22 ,91 ,92"
     &nameList = "注文仕入,注文返品,委託仕入,委託返品,その他仕入,その他返品"
     &codeList = #trim( &codeList, 4 ) /* 空白文字除去 */

     &at = #対応番号( &codeList, &mToriCode )
     if ( &at )
      &mToriName = #対応文字列( &nameList, &at )
     else
      &mToriName = "********"
     end

    手続き定義終了

引用返信 [メール受信/OFF] 削除キー/
■7117 / inTopicNo.4)  Re[1]: 途中で、配列用素数を変更する方法
□投稿者/ くおんたむ -(2012/07/13(Fri) 19:07:45)
    どうも、うにんさん、ONnojiさん

    連名レスで失礼しますm(_ _)m>

    >削除して宣言し直すぐらいでしょうけど、イベントだと削除できないですね。

    初めは、そのつもりで変数削除を入れたら、エラーで跳ね返ってきましたね。(^_^;)
    イベント中は出来ませんが、メイン部ではできます。
    いつも、メイン部で変数クリアをしていますので。

    >&番号 = 5 のとき、&作業5 の値を取り出します。
    >#変数( "作業" + #文字列( &番号 ) )

    今になって、この意味が漸く分かった。。。
    今まで、配列要素数しかできないと思ってた... orz
    こういう意味でしたのね。。。
    説明をよく読んでませんでしたね(笑)


    >#対応番号と#対応文字列を利用する

    この方法は、知っていました(^^ゞ
    同じ方法ではありませんが・・・。
    よく、メッセージボックスの返り値で使用しています。
    なので、出来ないときの最終手段として考えていました。

    疑似ReDimというのは無理なようですね。。。
    次回作に出来るようにして欲しいものですねぇ。

    今回は、ONnojiさんの方法を採用しました。

    どうも、ありがとうございます。m(_ _)m
解決済み!
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -