- PR -

クラス内での条件比較

投稿者投稿内容
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-10-24 10:39
お世話になっています。

またお教え下さい。

クラスにてDataViewの内容をexcelにダウンロードしようとした時に、セルの値が"..............."だったら""にしたいのですが、IF文の条件に入ってくれません。ウォッチ式で確認するとval及びsif_bk.GetString(System.Text.Encoding.Convert(utf_bk, sif_bk, utf_bk.GetBytes("...............")))の値は同じ"..............."なのですが、何がいけないのか検討もつかない為困っています。なにとぞ宜しくお願いします。


○web.configコード
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" culture="ja-JP" uiCulture="ja-JP" />

○クラスの引数
 ・strtbl:テーブル名
 ・dv:gridviewのDataView

○クラスコード
Public Class DownLoad
  Function DownLoad_rtn(ByVal strtbl As String, ByVal dv As DataView) As Integer

   Dim dt As DataTable = dv.ToTable(strtbl)

   ' rows
    Dim j As Integer = 2

    For Each row As DataRow In dt.Rows
      Dim arr As ArrayList = New ArrayList(row.ItemArray)
      For i As Integer = 0 To arr.Count - 1
        Dim val As String = arr(i).ToString
        Dim utf_bk As System.Text.Encoding = _
          System.Text.Encoding.GetEncoding("utf-8")
        Dim sif_bk As System.Text.Encoding = _
          System.Text.Encoding.GetEncoding(932)
        If val = sif_bk.GetString(System.Text.Encoding.Convert(utf_bk, _
         sif_bk, utf_bk.GetBytes("..............."))) Then
          val = "" ← ここに入らない!!
        End If
        arr(i) = val
      Next
      j += 1
    Next

  End Function
End Class
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-10-24 11:58
何のために"..............."のバイト配列をとって同じエンコーディングで戻しているんですか?

If val = "..............." Then

じゃだめですか?

[ メッセージ編集済み 編集者: べる 編集日時 2007-10-24 11:59 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-24 11:59
同じように見えているだけかもしれませんから、バイト単位で比較してみてはいかがでしょう?

って、エンコードしてる!?


[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2007-10-24 12:01 ]
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-10-24 13:02
べるさん、じゃんぬねっとさんレスありがとうございます。

TO.べるさん

>何のために"..............."のバイト配列をとって同じエンコーディングで戻し
>ているんですか?

>If val = "..............." Then

>じゃだめですか?

If val = "..............." Thenで普通にやってみたのですが、駄目だったので試しにやってみました。


TO.じゃんぬねっとさん

>同じように見えているだけかもしれませんから、バイト単位で比較してみてはいかがでしょう?
右辺と同様に左辺(val)についても同じ形式でやってみましたがやはり駄目でした。

文字コードについての知識が乏しく試行錯誤しております。宜しくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-24 13:38
引用:

じゃらんさんの書き込み (2007-10-24 13:02) より:

右辺と同様に左辺(val)についても同じ形式でやってみましたがやはり駄目でした。


えーっと "ダメでした" ではなくて入っている値を確認してそれを伝えて頂かないと...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃらん
常連さん
会議室デビュー日: 2007/06/27
投稿数: 32
投稿日時: 2007-10-24 14:48
すいません。駄目でしたの内容が抜けていました。

ウォッチ式で確認したのですが、両辺共に"..............."でした。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-24 14:52
引用:

じゃらんさんの書き込み (2007-10-24 14:48) より:

すいません。駄目でしたの内容が抜けていました。
ウォッチ式で確認したのですが、両辺共に"..............."でした。


えーっと、そうではなくてバイナリで確認して欲しいのですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-10-24 14:59
引用:

同じように見えているだけかもしれませんから、バイト単位で比較してみてはいかがでしょう?


引用:

入っている値を確認してそれを伝えて頂かないと...


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
引用:

右辺と同様に左辺(val)についても同じ形式でやってみましたがやはり駄目でした。


引用:

ウォッチ式で確認したのですが、両辺共に"..............."でした。


この流れにWONDA噴いたw
ニホンゴ ムズカシイ アルネー

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