- - PR -
テキストファイルから取り出した文字列が一致しない。
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-11 03:12
初めて投稿させていただきます。
現在私は、テキストファイルにカンマと改行区切りの設定ファイルを作成し、 まずarrayに各行をsplitで格納し、さらにその列をsplitでコンマで区切って別のarrayに格納した後、 For i As Integer = 0 To array1.Length - 1 Dim array2 As Array = array1(i).split(",") If array2(0).ToString = "任意の文字列" Then /*ここが一致せず*/ txt = array2(1) /*ここに入ってくれません*/ Exit For End If Next としています。 絶対に一致するようにテキストファイルを書きかえる等の処置を試みてみても、 またデッバガで見ても、完全に一致しているようにように見えるのですが、 if文がtrueになることはありませんでした。 何分無知ではありますが、お力をお貸しいただければ幸いです。 よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2007-09-11 05:56
本当に完全に一致するのに入らないならかなりやばいバグですね。 対象のtxtファイルと比較対象の文字列が無いので 正確なことはいえませんが、 前後の空白やキャピタライズを確認してください。 array2(0).Trim.ToLower = ("任意の文字列").Trim.ToLower とかでどうでしょう? 比較文字列に特殊な文字列が入ってるとこれでもだめかもしれません。 RLMだとか、外字だとか。 たぶん、タブや空白が入ってるというだけの問題だと思います。 | ||||||||||||
|
投稿日時: 2007-09-11 09:00
Encoding.GetBytes()で、文字列をバイトの配列にして見比べてみてはいかがでしょうか。
| ||||||||||||
|
投稿日時: 2007-09-11 23:18
れい様、一郎様、ご返事ありがとうございました。
先ほどTrim.ToLowerを試したとこと、思い通りに動いてくれました。 ありがとうございました。 また質問いたすこともあろうかと思いますが、何卒よろしくお願いいたします。 失礼いたします。 | ||||||||||||
|
投稿日時: 2007-09-13 21:46
え? ごめん、すっごく興味がある。
って、書かれていますよね? じゃぁ、 ファイル中にどのように設定し、デバッガ上でどのように見えていた文字列が、 コード上のどんな文字列と 一致しなかったのでしょう? Trim.ToLower は、 最初の可視文字より前、および最後の可視文字より後にある空白文字を除去する Trim と、 英大文字を英小文字に変換する ToLower を続けて実行します。 Trim だけで良いと思います。つか、良くないと、仕様上問題ありませんか?
(スペースを出すために code 使用) |
1