- PR -

クラス内での条件比較

投稿者投稿内容
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-10-25 11:24
皆様

いろいろとレス頂きまして本当にありがとうございます。

いろいろと雑用が重なり見る暇がありませんでした。申し訳ありません。

皆さんからのレスを1つ1つ見させて頂きあらためて返答したいと思います。

何分勉強しはじめの為、皆様から見れば歯がゆいところはあるかもしれませんが
何卒ご容赦願います。
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-10-25 13:19
皆様返信遅くなって申し訳ありませんでした。

TO べるさん

>クラス内でとおっしゃっていますが、例えばaspx.vbの中だったら(これもクラスだけど)
>大丈夫だったりするのですか。
aspxファイルを作成する時に、"別のファイルにコードを書き込む"にチェックを入れてい
ませんのでaspxです。aspx内では問題なく"."は比較できます。
念のためDownLoadクラスはApp_Codeフォルダにあります。

>dim str as String = sif_bk.GetString(System.Text.Encoding.Convert(utf_bk, _
>sif_bk, utf_bk.GetBytes("...............")))
この場合のstrの値は"DDDDDDDDDDDDDDD"になっています。
最初にdim str String = "..............."で見たときも"DDDDDDDDDDDDDDD"でした。

>[追記]
>ちょいと的外れな聞き方したかも、、
>DownLoadクラスのファイルはUTF-8で保存されていますか?、、かな。
UTF-8で保存されているか確認する方法が分りません。「ツール」−「オプション」内にどの形式で保存するか設定する箇所があるのでしょうか?


TO Jittaさん

>どうやって持ってきた値と、何をもとにした値を比較しているのでしょう?
親クラスからの引数としてDownLoadクラスに渡したDataView内のデータ(val)と固定値"..............."です。

>ハッシュ値をとってみるのもひとつかと
すいません。ハッシュ値の取り方なんですが教えて頂けないでしょうか?

>String.Compare とかは?
String.Compare("...............", val)でウォッチ式を確認したところ以下の結果になりました。
  valの値                結果
    aaa                 -1
    ...............    0
    ""                  1
もしかしたらIF分でString.Compare("...............", val)=0だったらで
思うことができるかと思ったのですがやはりTHENに入りませんでした。


TO ぶさいくろうさん

>っていうけど数値で確認したのかね?
>何度も何度も書かれてるのに。
>多分じゃらん氏には回答者の求めている確認方法が伝わっていないと思う・・・
>「文字コードの値で確認してくれ」なら通じるかな?
書き方が悪かったと思いますのであらためて記載しますと
   utf_bk.GetBytes(val)(0) = 239
   utf_bk.GetBytes(val)(1) = 188
   utf_bk.GetBytes(val)(2) = 142
この(0)〜(2)の1セットの値が15回分繰り返されていました。
又、utf_bk.GetBytes("...............")につきましても同様に
(0)〜(2)の1セットの値が15回分繰り返されていました。
   utf_bk.GetBytes("...............")(0) = 239
   utf_bk.GetBytes("...............")(1) = 188
   utf_bk.GetBytes("...............")(2) = 142
この書き方で問題ありませんか?


TO 一郎さん

すいません。Web Developer 2005 Express Editionにて作成している為、クイックウォッチがありません。


TO RUNさん

>まず文字コードと表示文字の関係の理解が先決なのかな?
そのとうりです。理解不足でした。文字コードを取得する関数かメソッドってあるのでしょうか?勉強不足で申し訳ありません。

>"."を外字登録とかしてるのかな〜?
外字登録はしていません。


皆様どうかお知恵を貸して下さい。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-25 13:52
引用:
>dim str as String = sif_bk.GetString(System.Text.Encoding.Convert(utf_bk, _
>sif_bk, utf_bk.GetBytes("...............")))
この場合のstrの値は"DDDDDDDDDDDDDDD"になっています。

やはりそうですか。strとsif_bk.GetString(〜〜 とは
同じはずなので、ウォッチが同じように見せていただけということになりますね。
[追記]
いや、、断言はできぬか、、エンコードの問題で、代入時に変化していた、、ということもある?・・

引用:
最初にdim str String = "..............."で見たときも"DDDDDDDDDDDDDDD"でした。

これは重要情報。。

引用:
UTF-8で保存されているか確認する方法が分りません。「ツール」−「オプション」内にどの形式で保存するか設定する箇所があるのでしょうか?

Visual Studioでの保存の方法は
[ファイル] - [名前を付けて●●を保存] - [保存]ボタンの横の三角をクリック
- [エンコードつきで保存] - (置き換えますか?に対して はい) -
とすると、[保存オプションの詳細]ダイアログで[エンコード]を指定できます。
というかエンコード指定保存できるエディタであれば何でもできます。UTF-8に限ってはメモ帖でもできます。

確認方法は上記方法で[エンコード]に元々UTF-8が選択されていればUTF-8(多分)。
エンコードの確認はそれなりの機能があればエディタでもできます。

[ メッセージ編集済み 編集者: べる 編集日時 2007-10-25 13:54 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-10-25 14:27
引用:

じゃらんさんの書き込み (2007-10-25 13:19) より:
Web Developer 2005 Express Editionにて作成している為、クイックウォッチがありません。


ウォッチ式のウィンドウを使ってもいいですよ。
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-10-25 15:07
べる様に教えて頂いたファイル保存で確認したところ、日本語(シフトJIS)になっていました。名前を付けて保存で日本語(シフトJIS)からUTF-8(BOM付き)で上書き保存した結果思うとうりに動作致しました。
ここで1つ疑問に思ったのですが、web.configでfileEncoding="utf-8"を指定しているにもかかわらず、日本語(シフトJIS)で保存されていたのはなぜなんだろう???又、ファイルの新規作成時はweb.configでfileEncoding="utf-8"保存し、後からfileEncoding="Shift-JIS"に変更した上でツールバー上の全てを保存ボタンを押した場合どちらの形式で保存されるのか試してみたいと思います。

べる様、一郎様、皆様ありがとうございました。

べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-26 11:23
引用:
ここで1つ疑問に思ったのですが、web.configでfileEncoding="utf-8"を指定しているにもかかわらず、日本語(シフトJIS)で保存されていたのはなぜなんだろう???

fileEncodingは、Visual Stduioがファイルを新規作成するときに使用するエンコーディングを
指定するものではないから、です。まぁ、aspx(とそのコードビハインドファイルもかな)は
勝手にUTF-8で作るのに他のソースファイルは勝手にShift_JISで作るのは妙といえば妙ですが。
ただ、何故わざわざ指定したのかは疑問です(指定しなければ動くようになってた気がする)。

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