投稿者 魔界の仮面弁士  (社会人) 投稿日時 2008/12/11 08:00:52
固定長という事は、切り出すバイト位置も分かっているでしょうから、
いっそ、バイナリとして処理するのはどうでしょうか。

Dim A1 As String    ' 0~ 4 の5バイト:12345 
Dim J1 As String    ' 5~11 の7バイト:あいアイウ 
Dim A2 As String    '12~14 の3バイト:678 
Dim J2 As String    '15~20 の6バイト:うえお 

Dim bytes() As Byte = My.Computer.FileSystem.ReadAllBytes("C:\text.txt")
Dim enc As Encoding = Encoding.Default
If UBound(bytes) >= 20 Then
    A1 = enc.GetString(bytes, 0, 4)
    J1 = enc.GetString(bytes, 5, 7)
    A2 = enc.GetString(bytes, 12, 3)
    J2 = enc.GetString(bytes, 15, 6)
End If