- PR -

レジストリへの保存方法

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-07 10:06
引用:

Jittaの書き込み (2004-05-07 10:00) より:


この後に、「テキストボックスが大量にあって、それをいちいち記述していくのは面倒だ」となった場合、既出の問題ですから、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7451&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5164&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4650&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2436&forum=7
この辺を参考にしてください。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-07 10:16
諸農です。

引用:

Nakataさんの書き込み (2004-05-07 04:33) より:

jittaさんに紹介してもらったRegistryKey.SetValue メソッドを見ると

[Visual Basic]
Overloads Public Function GetValue( _
ByVal index As Integer _
) As Object

と書いていたので、それを参考にコードを書いたらおかしくなってしまいました。
(_この記号は続くと言う意味なのかな?)



このGetValue()メソッドって、Array.GetValue()のひとつではないかと・・
RegistryKey.GetValue()のオーバーロードバージョンに
intを引数にしたメソッドは無いですが。。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-05-07 13:15
引用:

Nakataさんの書き込み (2004-05-07 04:33) より:
key.GetValue("abc1", TextBox1.Text)
key.GetValue("abc2", TextBox1.Text)
key.GetValue("abc3", TextBox1.Text)
key.GetValue("abc4", TextBox1.Text)

key.Close()

まだうまくいきませんが…。


まだっていうか、あまり正しい方向に進んでるようには見えない…

プログラムというのがどういうものなのかを勉強してください。
なんとなく書いたら勝手に思ったように動いてくれるようなものではありません。

やや誤解を恐れずに書くと、基本的にはプログラムとは記述したことをそのまま実行していくものです。
TextBox1しかプログラム中に出てきていないのに、TextBox2〜4に勝手に値が設定されるわけがありません。
※もちろんTextBox1の記述も意味がないですが。

GetValueのドキュメントには、

戻り値
name に関連付けられたデータ。name が見つからない場合は defaultValue 。

と書かれています。戻り値で結果が返されるって事です。せっかく返された結果の値をほっといては、defaultValueにTextBox1の値を指定した所で何の意味もありません。
ということを何も理解せずに先ほどのプログラムを書いてますよね?
メソッドその他は、想定された使い方をしてはじめて意味があるものです。てきとーに書いたって勝手に思ったとおりに動いてくれるはずがありません。
引用:

jittaさんに紹介してもらったRegistryKey.SetValue メソッドを見ると

[Visual Basic]
Overloads Public Function GetValue( _
ByVal index As Integer _
) As Object

と書いていたので、それを参考にコードを書いたらおかしくなってしまいました。
(_この記号は続くと言う意味なのかな?)


なんでこのメソッドを写そうというような発想がでてきました?

念のため書いておくと、メソッド等の説明の最上部に出ているのは、そのメソッドがどのような型で定義されているかを示すコードです。
ですから当然使い方のサンプルではありません。「このようなコードとして定義されていますよ」という説明です。
これを写すことに意味などありません。

ついでに、Jubeiさんが仰るように、このメソッドはおそらく別のクラスのメソッドです。多分ドキュメントの間違った場所を見ています。
引用:

入門書ですら四苦八苦している初心者小僧なんです。
私のレベルおわかり頂けましたでしょうか?(レベル下の下って事です×)


下の下ならそのレベルでやるべきことというのがあります。
車の運転の仕方を全く知らないのに、ラリーで勝つ方法を教えてくれって言ってるようなものです。

とにかく、プログラムはてきとーに書いても、思ったとおりに動作することはまずありえません。
まずは、基本的な文法(というよりは、プログラムがどういったものなのか理解することから先かな)を正しく理解してください。

[ メッセージ編集済み 編集者: なちゃ 編集日時 2004-05-07 13:29 ]
Nakata
常連さん
会議室デビュー日: 2004/03/30
投稿数: 41
投稿日時: 2004-05-07 15:23
'System.NullReferenceException' のハンドルされていない例外が発生しました。

追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。

TextBox1.Text = key.GetValue("TextBox1.name")←ここで起こった
TextBox2.Text = key.GetValue("TextBox2.name")
TextBox3.Text = key.GetValue("TextBox3.name")
TextBox4.Text = key.GetValue("TextBox4.name")

-----------------------------------------------------------
Dim strVal As String = CType(key.GetValue("VB"), String)

こういう形に直さないといけないのですか?



Nakata
常連さん
会議室デビュー日: 2004/03/30
投稿数: 41
投稿日時: 2004-05-07 15:26
今ためして見ると読み込まれていました。
あの例外はなんだったのでしょう。

しかしその読み込まれた値で計算するコードを下に書いていたのですが
それは計算されていませんでした。

[ メッセージ編集済み 編集者: Nakata 編集日時 2004-05-07 15:31 ]
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-07 16:13
引用:

Nakataさんの書き込み (2004-05-07 15:26) より:

しかしその読み込まれた値で計算するコードを下に書いていたのですが
それは計算されていませんでした。



なぜ計算されていないのか、その理由を簡潔に言いますと、
ライブラリの仕様を確認し把握した上で、自己の望む結果を
導き出すためのプログラムコードを記述していないからです。

頑張ってデバッグしましょう。

--P.S.--
この掲示板を見ている人の中には超能力者はいないと思います。
またNakataさんのプログラム仕様の決定者でもありません。

自己のプログラム仕様を明確にし、現在直面している問題点を
細分化し、各問題点の内容を吟味した上で優先順位を整理する
事で、次のステップへの道が開けます。
ひとつの問題点の解決が、SDK等による文法の理解とプログラ
ミングに対する取り組みについての理解ではないかと思われ
ます。これらの解決の手段には、市販の参考書等々を併用しても
いいと思います。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-07 16:18
引用:

Nakataさんの書き込み (2004-05-07 15:23) より:
Nakataさんの書き込み (2004-05-07 15:26) より:


 う〜ん、なちゃさんの2004-05-07 13:15は読んで、理解しました?

引用:

プログラムというのがどういうものなのかを勉強してください。
なんとなく書いたら勝手に思ったように動いてくれるようなものではありません。

メソッドその他は、想定された使い方をしてはじめて意味があるものです。てきとーに書いたって勝手に思ったとおりに動いてくれるはずがありません。

下の下ならそのレベルでやるべきことというのがあります。

とにかく、プログラムはてきとーに書いても、思ったとおりに動作することはまずありえません。
まずは、基本的な文法(というよりは、プログラムがどういったものなのか理解することから先かな)を正しく理解してください。




 こういう書き方すると「初心者バッシングだ」とか、「おまえの価値観を人に押しつけるんじゃねぇ」とか言われそうです(言われました)が、まずはプログラムを作るというのがどういうことかを学ぶことが先ではないでしょうか。繰り返しますが、適当に書いて適切に動作することは、滅多にありません。まず、今やるべきことをやってください。それはVB.NETの文法を知ることと、MSDNの読み方を知ることです。趣味ならば時間はたっぷりあるでしょう?

 仕様書(MSDN)の読み方、仕様書の書かれ方をまず知って、その上で何がしたいかを決め、したいことをする為には何が必要かを探し、必要なものをどう使うかを調べ、そして組み立ててください。
Nakata
常連さん
会議室デビュー日: 2004/03/30
投稿数: 41
投稿日時: 2004-05-07 16:30
市販の参考書等も結構参考にしてるのですが…。

>プログラムというのがどういうものなのかを勉強してください。
>なんとなく書いたら勝手に思ったように動いてくれるようなものではありません。

これは心にグサッと来ます。しかし書いた方が覚えるともよく言いますしね。
それは文法を理解した上の話だと思いますけど。
しかし私でも上からコードを処理して行くことは
わかっているつもりです。
上からコードを読んで行くのになぜ読み込まれているTextboxの計算をしない?
って感じでとても不思議です。
(スレッドの題とはもはや関係ないのですが…)

スキルアップ/キャリアアップ(JOB@IT)