- - PR -
レジストリへの保存方法
投稿者 | 投稿内容 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-05-08 09:41
Dim y As Single = Val(Me.TextBox1.Text)
Dim m As Single = Val(Me.TextBox2.Text) Dim d As Single = Val(Me.TextBox3.Text) Dim Interval As Single なんでレジストリで読み込んだ値が↑のコードに反映しないかわからないです× | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-08 10:27
諸農です。
あのですね。。。 もー、同じ話の堂々巡りじゃないですか。
このコードの key = key.OpenSubKey( の部分にブレークポイントを 仕掛けて、ステップ実行しながら 1.key変数がnull参照になっていないか。 2.TextBox1.Textに期待した値が格納されているか。 3.TextBox2.Textに期待した値が格納されているか。 4.TextBox3.Textに期待した値が格納されているか。 ※Regeditで対象のサブキーにある名前に対応する値を確認して比較してください サブキー:"software\VB and VBA Program Settings\VBTips" 名前:TextBox1.name、TextBox2.name、TextBox3.name このスレッドを続けられたいとお考えなのでしたら、 是非、上記作業の結果を回答ください。 以下、再質問です。 是非、お答えください。
デバッグには、ステップ実行での値の確認、 トレースログによる値の確認、実行経路の確認などありますが、 Nakataさんはどのようなデバッグ手法を取られていますか?
Regeditで確認すると""で括られた名前があるのですか? 「〜でいんじゃないですか」とはどう意味ですか? 「わからない」とはどういう意味ですか? この状況でデバッグしていると言えますか? この回答は、正直、「ふざけている」としか思えない。
「多分いい」とはどういう意味ですか? 「多分」といった感覚でプログラムコードが思った通りには動作しない、 という話は、これまでのやりとりの中でたくさん指摘されています。 あまりおふざけにならないようにしていただけませんか。
「レジストリキーを削除する」の意味はなんでしょうか? 実際にレジストリから削除する? レジストリ読み込みのコードをプログラム上から削除する?
ですので、「Label1には処理された数値が出てきました」「出なかった」という時の 1.手作業で入力した値を教えてください。 2.読み込みで表示されている値を教えてください。 ちなみに、
なぜSingle型を使っているのでしょうか? DateTimeのコンストラクタ引数は、System.Int32型または System.Int64型を取るようですけど。 よろしくご回答をお願いします。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-08 11:12
ブレークポイントを仕掛けた所、各値は""と出てきました。
>デバッグには、ステップ実行での値の確認、 >トレースログによる値の確認、実行経路の確認などありますが、 >Nakataさんはどのようなデバッグ手法を取られていますか? F5で実行できるデバッグです。初心者なのでトレースログによる値の確認、実行経路の確認の仕方等はわかりませんし、そこから何を得ればいいのかもわかりません。 >Regeditで確認すると""で括られた名前があるのですか? >「〜でいんじゃないですか」とはどう意味ですか? 書き出しも("TextBox1.name") ですし、何よりこのスレッドで書き方を聞いたのですが…。 >Q. 特定の日付から現在日付を引き算していますが、それでいいのですか? 現在日付からTextboxに入力された値を引いています。 >「レジストリキーを削除する」の意味はなんでしょうか? >実際にレジストリから削除する? >レジストリ読み込みのコードをプログラム上から削除する? http://dobon.net/vb/dotnet/system/registrykey.html ↑これです。 >ちなみに、 引用: -------------------------------------------------------------------------------- Dim y As Single = Val(Me.TextBox1.Text) Dim m As Single = Val(Me.TextBox2.Text) Dim d As Single = Val(Me.TextBox3.Text) -------------------------------------------------------------------------------- なぜSingle型を使っているのでしょうか? DateTimeのコンストラクタ引数は、System.Int32型または System.Int64型を取るようですけど。 いや、そこはレジストリの読み込みを入れなければ動作していましたので。 [ メッセージ編集済み 編集者: Nakata 編集日時 2004-05-08 11:17 ] | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-08 12:47
諸農です。
新規でプロジェクトを作成してください。 フォームにTextBoxコントロールを3つ配置してください。 フォームにLabelコントロールを1つ配置してください。 フォームにButtonコントロールを2つ配置してください。 アプリケーションでレジストリのCurrentUserハイブに 次のサブキーを作成することにします。 「SoftWare\Nakta\VBRegTest」 このサブキーに、日付情報を格納するための Year,Month,Dayという名前のエントリも作成します。 Year,Month,Dayの値は、フォーム上のTextBox1〜TextBox3に 入力された値を利用します。 それぞれ、TextBox1が年に、TextBox2が月に、TextBox3が日に対応します。 フォーム上のButton1コントロールをダブルクリックして、 イベントハンドラスケルトンを作成して次のコードを書きます。
次に、レジストリに書き込まれた値を読み出して、現在日付との差を求める処理を作成します。 レジストリから読み込み対象の名前が見つからなかった場合は、デフォルト値として現在日付値を利用します。 フォーム上のButton2コントロールをダブルクリックして、 イベントハンドラスケルトンを作成して次のコードを書きます。
上記のButton1、Button2のクリックイベントハンドラを書き終えたらアプリケーションを実行します。 フォームが表示されたら、最初にフォーム上のTextBox1〜3に順に「年」「月」「日」を入力します。 「年」「月」「日」の入力が完了したら、Button1をクリックします。 Regedtを起動して「CurrentUser」ハイブ配下に「SoftWare\Nakta\VBRegTest」の サブキーが作成されて、エントリに「Year」「Month」「Day」が作られており、 それぞれの値が、TextBox1〜3で入力した値になっているか確認します。 確認ができたら、Button2をクリックします。 Label1コントロールに日付計算結果のメッセージが表示されればOKです。 以上で、このスレッドで話題になった疑問のすべてが解決できたと思います。 今後、これ以上は何も期待できないと思います。 では、休日をお楽しみください。 _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2004-05-08 12:50 ] | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-10 09:53
なんか、休みを挟んでえらいことになっていますが。
まず、私のコメントが混乱の一つになっているようです。すみません。 ----- > ただし、"abc1"などは、TextBox1.Nameなどとする方がよいでしょう。 これは、 key.GetValue("TextBox1.name") を意味せず、 key.GetValue(TextBox1.Name) を意味します。これがどういう違いを引き起こすか、理解されていないようですね。困りました。 「理解していない」と判断した理由: 2004-05-08 09:13より、 > Q. 引数が "" で括られていますが、それはそれでいいのですか? > A.keyの名前なのでいいんじゃないですか?わからないです。 keyの名前なのですが、"TextBox1.name"とすると、キーの名前が「TextBox1.name」になります。が、ダブルクォーテーションをつけずにTextBox1.Nameとすると、キーの名前はTextBox1につけたキーの名前になります。 なぜこうした方がよいと書いたかというと、レジストリエディタでレジストリを見たときに、キーの名称がテキストボッスに付けた名称と同じになり、 見やすいだろうと思ったからです。 ----- それから「初心者だから」というのは言い訳であって、わからない理由にはなりません。わからなければ理解できるようになってください。理解する為には何をすればいいか、考えてください。何らかのプログラムを作って、それをメンテナンスするのはあなたですから、あなたがわかっていなければ、ダメなんです。 ここで回答している人たちが、いつまでもここにいるわけではありません。しかし、あなたが作ったプログラムは、いつまでもあなたのそばにあります。メンテできるのはあなただけです。 「初心者だから、こうすることがわからなかった」というのは、かまいません。が、それがいつまでも続けられるとは思わないでください。今は初心者かもしれませんが、いつまでも初心者ではないはずですから。 あと、諸農さん、あまり熱くなりすぎないように。 #私は子供にうつされた風邪で、熱が上がりましたが。。。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-10 10:26
書き足しました。 デバッグのしかた 習得してください。 | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-10 12:00
諸農です。
Jittaさん、いつもフォローありがとうございますm(__)m
えへへ(^^; 結局、あのやりとりの中で感じた事は 「何も考えずにコピペだけで動作してくれるコードが欲しい」 のだろうなぁと思いまして。。
ウチはさっきからひきつけを起こしたように泣き叫んでいます。。(x_x) _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||||||||||||||
|
投稿日時: 2004-05-11 06:19
色々ご迷惑をお掛けしまして本当に申し訳ありません。
ただコピペしただけで動くコードが欲しかったんじゃなく、 コードの決まった書き方を教えて欲しかっただけです。 次回からは、スレッドのファイルが燃えないように頑張る次第です。 みなさんは、どうやってVBを覚えたのでしょうか? (Try〜Finallyなんて初めて見たもので(^^; ) よろしければ効率の良い学習方法等を教えてもらえると嬉しいです。 |