Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
固定長textに全角文字(2バイト)が含まれている場合の取り出しで
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=176#CommentId1228
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
Fredee
 (社会人)
投稿日時
2008/12/11 07:30:36
お世話になっております!!
固定長テキストファイルに日本語(2バイト)文字が有ると、フィールドの指定が変わってしまいます。
例えば、C:\text.txt に
12345あいアイウ678うえお
のレコードがあって、12345 , あいアイウ , 678 , うえお を取り出すのに次のようにしています。
'----- ストリームリーダー定義 -----
Dim SrFile As StreamReader
Dim Sline As String
Dim A1 As String '12345 を格納 ← 問題なし
Dim J1 As String 'あいアイウ を格納 ← 全角と半角が混在すると以降の指定が変わります
Dim A2 As String '678 を格納したい ← 13桁目
Dim J2 As String 'うえお を格納したい ← 16桁目
SrFile = New StreamReader("C:\text.txt", Encoding.Default)
Sline = SrFile.ReadLine
While Not Sline Is Nothing
If Sline.Length <> 0 Then
A1 = Mid(Sline, 1, 5).ToString
J1 = Mid(Sline, 6, 5).ToString '全角半角が混在したり、半角だけ等で以降の指定が
A2 = Mid(Sline, 11, 3).ToString '変わります
J2 = Mid(Sline, 14, 3).ToString
End If
Sline = SrFile.ReadLine
End While
この時、J1の部分に半角だけの時や全角の文字数が変わった場合に、A2,J2の取り出し位置が変わります。
全角は2バイトで数えて、フィールドの指定カラムを変えないで数える方法はありますか?
Excel VBAではバイトで数える関数がありますが、VB.NETにはないのでしょうか!!
説明が十分でないかも知れませんが、何方かご教授をお願いします。