例如:你好abcd中文
共12个字节,汉字是两个字节
读的时候read(4)应该是得到  “你好” 而不是  “你好ab”

解决方案 »

  1.   

    Option ExplicitPrivate Sub Form_Load()
    MsgBox GetStrB("你好abcd中文", 4)
    End SubPrivate Function GetStrB(ByVal strString As String, ByVal iLenB As Long)
       GetStrB = StrConv(LeftB(StrConv(strString, vbFromUnicode), iLenB), vbUnicode)
    End Function
      

  2.   

    哦,我明白你的意思了,是把整个文本文件放到一个字符串变量,然后才按字节读
    但是我得文本文件很大1.64M可不可以也把它放到字符串里读阿?
    象下面这样的:04232 A   2200431   452 0010018000000002000340001800021000600052000220013000580003000100007100031000700081000310007000880104000070009500041001100102000500006001130006000060011900086002100125000860021001460111100160016700120000900183001900007001920019100080019900192001300207002000100002200021000670032000300003000387003000031004170133000440044800460004100492005000019005330060009770055200600220901529016100015037380062000470375300221020LIBDA00191800A221020libB大连理工大学图书馆00AA00A2002061100B2C5800Azh00Aen00Azh00AzhAen00AP00AD00A30000BAAC3300000A30001BAAC3300000A004/M01(56)00A990200A0100A30800B2001122301A生物医药领域投资机会的选择aSHENG WU YI YAO LING YU TOU ZI JI HUI DE XUAN ZEXSWYYLYTZJHDXZLzh01AThe choose of investment opportunity in bio-pharmaceuticalLen10A毛嘉农aMAO JIA NONGE07020A戴大双aDAI DA SHUANGE01500A大连理工大学B管理学院D大连 116024Ecn00A83PBill3,tab4,ref33C26cmDdiskette00A管理工程与科学00A以基因工程、细胞工程、酶工程、发酵工程和蛋白质工程技术为代表的现代生物技术是21世纪世界科技创新的前沿,大力发展生物技术及其产业已成为各国投资发展的核心产业及
      

  3.   

    Option Explicit
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Private Sub Command1_Click()
        Dim Buffer() As Byte
        Dim Str As String, Str1 As String
        Dim LngLen As Long
        Str = "你好abcd中文"
        LngLen = LenB(StrConv(Str, vbFromUnicode))
        ReDim Buffer(LngLen - 1)
        Call CopyMemory(Buffer(0), Str, LngLen)
        Dim i As Long
        For i = 0 To LngLen - 1
            Debug.Print Buffer(i)
        Next i
    End Sub