我想将本地一个文件读到一个变量中,因为每次只能读32k文件的限制,所以做一个循环,循环读取,但现在有一个问题,就是在我每次读取文件指针所在位置如果是一个汉字,因为占两个字节,所在位置是这两个字节中间位置就会出错:input past end of file.
请问各位大侠,我怎样才能处理这个问题?
或者打开文件方式中有无可自动判断文字,就是将汉字认为一个字符的方式?我的代码如下:
Dim FilePath As String '用来确定文件的位置
Dim n As Integer 
Dim Remain As Integer  '获得文件最后的字节数
Dim FileNum As Integer '用来在打开文件时分配一个编号
Dim SecLen As Integer '用来确定一个域中所放的字节数
SecLen=30000

FilePath="c:\39C4BA35563334C148256EE00034F861.htm"
FileNum=Freefile()
         Open FilePath For Input As FileNum
n=Int(Lof(FileNum)/SecLen)
Remain=Lof(FileNum) Mod (SecLen)
Dim FistStrFile As String
For i=1 To n
    aaa=aaa+Inputbp$(SecLen,FileNum)
Next
         aaa=aaa+Inputbp$(Remain,FileNum)
Close FileNum

解决方案 »

  1.   

    DIM X 
    X=""
    Open App.Path + "\user.ini" For Input As #1 ' 打开文件。
    Do While Not EOF(1)
       Line Input #1, T1
    X=X & T1 & VBCRLF
    loop
    Close #1
      

  2.   

    判断Asc码试试
    记得汉字的Asc码是负的
      

  3.   

    不要用字符串变量来取。因为中文系统会自做主张胡乱解释。
    最好用 Byte 数组。 如果需要,可以在读取完毕后再赋值给字符串变量。Dim myStr As String
    Dim myArr(65535) As Byte......
    myStr = StrConv(myArr, vbUnicode)