テスト用S-JIS文字列(改行付き)の作成
2024/08/02
の続きです。
1バイトずつ読み取って中身を確認
これを For ~ Next で実行 編。
まず、
テスト用S-JIS文字列(改行付き)の作成2024/08/02
のおさらいです。
Begin
' Dim SJArray(9999, 200) AS String
' 9999行の配列として宣言
Dim PointerX AS Integer
'半角全角フラグ
Dim HanZenFlag AS Byte
' それ用の配列も必要。
Dim HZArray(200) AS Byte
' Dim HZArray(9999, 200) AS Byte
' 半角文字: 半角全角フラグ = 0
' 全角文字 第1バイト:半角全角フラグ = 1
' 全角文字 第2バイト:半角全角フラグ = 2
Dim Ch1st, Ch2nd AS Byte
-----------------------
Dim UnStr As String
Dim SjStr As String
'Str = "ab1234567890"
'Str = "12345"
'Str = "1234512345"
UnStr = "ab123"
' Unicode文字列 10バイト
MsgBox UnStr & "バイト数" & LenB(UnStr)
SjStr = StrConv(UnStr, vbFromUnicode)
' S-JIS文字列 8バイト
MsgBox SjStr & "バイト数" & LenB(SjStr)
SjStr = Sjstr & ChrB(&HD) & ChrB(&HA)
' 末尾に改行を追加。
If LenB(SjStr) >=2 then
’半角は1バイト、全角は2バイト取り出す
MsgBox MidB(SjStr, 1, 1) ' "a"
MsgBox MidB(SjStr, 2, 1) ' "b"
'3文字目 「1」 第1と第2に分ける。
MsgBox " 1バイト目"
MsgBox AscB( MidB(SjStr, 3, 1) ) ' 130
MsgBox "&H" & Hex(AscB( MidB(SjStr, 3, 1) ) ) ' &H82
MsgBox AscB( MidB(SjStr, 4, 1) ) ' 80
MsgBox "&H" & Hex(AscB( MidB(SjStr, 4, 1) ) ) ' &H50
'4文字目 「2」
MsgBox " 1バイト目"
MsgBox AscB( MidB(SjStr, 5, 1) ) ' 130
MsgBox "&H" & Hex(AscB( MidB(SjStr, 5, 1) ) ) ' &H82
MsgBox AscB( MidB(SjStr, 6, 1) ) '
MsgBox "&H" & Hex(AscB( MidB(SjStr, 6, 1) ) ) ' &H51
'5文字目 「3」
MsgBox " 1バイト目"
MsgBox AscB( MidB(SjStr, 7, 1) ) ' 130
MsgBox "&H" & Hex(AscB( MidB(SjStr,7, 1) ) ) ' &H82
MsgBox AscB( MidB(SjStr, 8, 1) ) ' 82
MsgBox "&H" & Hex(AscB( MidB(SjStr, 8, 1) ) ) ' &H52
MsgBox " 9バイト目は"
MsgBox MidB(SjStr, 9, 1) ' ""
MsgBox AscB(MidB(SjStr, 9, 1)) ' 13 は〇。
'10バイト目は?
MsgBox "10バイト目は?"
MsgBox MidB(SjStr, 10, 1) ' ""
MsgBox AscB(MidB(SjStr, 10, 1)) ' 10 は〇。
' Hanzen()
End If
End
------------------------
今度は、表示を簡略化してみます。
------------------------
'Str = "ab1234567890"
'Str = "12345"
'Str = "1234512345"
'For Next で
Dim UnStr As String
Dim SjStr As String
UnStr = "ab123"
' Unicode文字列 10バイト
'MsgBox UnStr & "バイト数" & LenB(UnStr)
SjStr = StrConv(UnStr, vbFromUnicode)
' S-JIS文字列 8バイト
'MsgBox SjStr & "バイト数" & LenB(SjStr)
SjStr = Sjstr & ChrB(&HD) & ChrB(&HA)
' 末尾に改行を追加。
Dim I AS Byte
I = 1
’半角は1バイト、全角は2バイト取り出す
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H61
I = 2
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H62
'3文字目 「1」 第1と第2に分ける。
I = 3
MsgBox " 1バイト目"
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H82
I = 4
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H50
'4文字目 「2」
I = 5
MsgBox " 1バイト目"
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H82
I = 6
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H51
'5文字目 「3」
I = 7
MsgBox " 1バイト目"
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H82
I = 8
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H52
I = 9
MsgBox " 9バイト目は"
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &HD
I = 10
'10バイト目は?
MsgBox "10バイト目は?"
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &HA
' Hanzen()
End
------------------------
'今度は、For Next で
------------------------
Begin
Dim UnStr As String
Dim SjStr As String
UnStr = "ab123"
' Unicode文字列 10バイト
'MsgBox UnStr & "バイト数" & LenB(UnStr)
SjStr = StrConv(UnStr, vbFromUnicode)
' S-JIS文字列 8バイト
'MsgBox SjStr & "バイト数" & LenB(SjStr)
SjStr = Sjstr & ChrB(&HD) & ChrB(&HA)
' 末尾に改行を追加。
Dim I AS Byte
For I = 1 To LenB(SjStr)
MsgBox I & " バイト目は?"
MsgBox "&H" & Hex(AscB( MidB(SjStr, I, 1) ) ) ' &H
Next
End
#VisualBasic
#VBA
#テキストエディター
#エディター
冷やかしの「いいね」は断ります!