VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/01/23(Tue) 19:12
投稿者お願いします。
Eメール
URL
タイトルバイナリでの漢字コード判定について

先ほど、質問の回答を頂いたのですが、追加が出ましたのでよろしければどなたか分かる方の
回答をお願い致します。お手数ですが、よろしくお願い致します。

バイナリコードを1バイトづつ読んでいき、漢字の時のみもう1バイトを読み、
41a0から7fffの間に該当する場合はリストに出力、という処理を考えていますが、
バイナリコードのIF文判定が上手く判定してきません。

初歩的な事かもしれませんが、バイナリの1バイトの後ろに1バイトを付けた2バイトと
41a0から7fffの間に該当する場合の処理としてCST等をつけてますが、上手くいかない為、
どなたかポイントでも良いのでご指導ねがいますでしょうか?

先ほどから質問ばかりで申し訳ありません。

ちなみに下記のように下手なりに記入していろいろ試してますが、
あまり上手くいかない為、気になる点があったらご指導願います。

勝手を言って申し訳ないのですが、本日中にこの件への質問への回答ができない可能性があり、
返事が明日になる場合がありますので、ご了承願います。


'読み込み用
    Dim buf(0)  As Byte
'データ判定用
    Dim buf2(1)  As Byte
'41A0判定用
    Dim bufstr(1)  As Byte
'7FFF判定用
    Dim bufend(1)  As Byte
'添え字等
    Dim i As Long
    Dim flag As String
'読み込み
    Open "C:\test.TXT" For Binary As #1
    Get #1, , buf
    flag = "0"
'41A0を判定用に退避
    bufstr(0) = &H41
    bufstr(1) = &HA0
'7FFFを判定用に退避
    bufend(0) = &H7F
    bufend(1) = &HFF
'ファイル終るまで    
    Do Until EOF(1)      
        i = i + 1
'1バイト目が28なら漢字判定対象                                      
        If buf(0) = &H28 Then
            flag = "1"
        End If
        Do Until flag = "0"
            Get #1, , buf
'29が出たら漢字終了、出るまでは漢字編集
            If buf(0) = &H29 Then
                flag = "0"
            Else
'1バイト目を判定エリアに編集
                buf2(0) = buf(0)
'2バイト目を読み、判定エリアに編集
                Get #1, , buf
                buf2(1) = buf(0)
'41a0-7fffの範囲内なら表示する
                If ((CStr(bufstr) <= CStr(buf2)) And (CStr(buf2) <= CStr(bufend))) Then
                    Debug.Print Hex(buf2(0)) & Hex(buf2(1))
                End If
            End If
        Loop
        Get #1, , buf
    Loop
    Close #1


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -