| ONnojiさん
こんにちは! 更なる改良有難うございましたm(__)m
感想 と 疑問です。
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
感想1、
> &indexList = &indexList + #cond( &indexList <> #u, &comma ) + #str( 1 + #日数( &mDate[1], [日付] ) )
> トレース出力 _&indexList
この時までは、&commma を付ける目的は、トレースした時に見やすくする為だなと思ったんです。(実際見やすいので、確認しやすいです(^^))
まさか
>&dimNum = #num( #対応文字列( &indexList, &i ) )
#対応文字列に使用する為とは考えもつきませんでした! 実際に気づけた理由は別にあります。
プログラムを書き写しました。( コピペではなく、手打ちです! )
まず、 >&dimNum = #num( #対応文字列( &indexList, &i ) )
の #対応文字列( &indexList, &i ) の意味が分かりませんでした。 何が分からないかと言うと、
#対応文字列は、文字列の並びから n番目の文字を取り出す関数です。
#対応文字列( 1, 1 ) #対応文字列( 8, 2 ) #対応文字列( 14, 3 )
・ ・ ・
プログラムを見ただけの時は何故かこの様に理解してしまっていました。
>トレース出力 _&loop, " ", _&i, " ", _&dimNum
を
トレース出力 _&loop, " ", _&i, " ", _&indexList, " ", _&dimNum
へ _&indexList を追加してトレース出力しました。
結果が
:&loop : 11 &i : 1 &indexList : 1,8,14,15,21,22,28,29,35,36,42 &dimNum : 1 :&loop : 11 &i : 2 &indexList : 1,8,14,15,21,22,28,29,35,36,42 &dimNum : 8 :&loop : 11 &i : 3 &indexList : 1,8,14,15,21,22,28,29,35,36,42 &dimNum : 14
・ ・ ・
これで、&commma の意味と #対応文字列( &indexList, &i ) の意味が分かったのでした(^^ゞ
===========================================================================
感想2、
>&m休日 = { "" } /* すべての要素値を未定義にします cf. 桐ヘルプ [代入]コマンド */
これは、シビレました! 要素値を未定義にすると言う発想が全く有りませんでした。
早速、桐ヘルプを見ると
**************************************************************************
&設定色 のすべての要素値を未定義にします。 変数宣言 共通,文字列{ &設定色[8] } &設定色 = { "" }
**************************************************************************
しっかり書かれていました。 勉強になりました。
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
疑問
>&indexCount = 1 + #文字数( &indexList ) - #文字数( #文字置換( &indexList, &comma, #u ) )
この値が 11 になる理由が分かりませんでした。
トレース出力 _&indexCount," ",_( 1 + #文字数( &indexList ) ), " ", _( #文字数( #文字置換( &indexList, &comma, #u ) ) )
を追加で入れると
:&indexCount : ( 1 + #文字数( &indexList ) ) : 31 ( #文字数( #文字置換( &indexList, &comma, #u ) ) ) : 20
これで 11 になる理由は分かったのですが、 値が
( 1 + #文字数( 21 ) ) : 22 ( #文字数( 11 ) ) : 11
22 - 11 = 11 なのかと思ったら、 31 - 20 = 11 で 11でした。
私の理解では、&indexList が 30 カンマなし&indexList が 20 になる理由が分かりませんでした(T_T)
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
いつも、丁寧なプログラム有難うございます!
今回の質問事項は、自分の中で結構応用範囲が広く使えると感じています。
たかがカレンダーなのですが、 変数のソース値に日にちを入れる(これだけならNULLで可能)
表にある情報を変数に入れる(今の私にはかなりハードルが高かったです) 等、桐のプログラムを勉強する上で基本的な事が詰め込まれていたと思います。
思った通りに、プログラムが動いたら凄く嬉しいですね(^^♪ 桐が楽しくなってきました!
ご教授ありがとうございましたm(__)m
|