我用readfile 函数把文件的数据读如textbox中,为什么老是莫名奇妙的退出.
难道缓从区类型不对?
如何定义

解决方案 »

  1.   

    Dim fso As New FileSystemObject
           Dim fill As File
           Dim ts As TextStream       Dim filename As String
           Dim path As String       Dialog1.CancelError = True
           On Error GoTo Err
           Dialog1.Filter = "所有文件(*.*)|*.*|文本文件(*.TXT))|*.TXT"
           Dialog1.ShowOpen
          
           
           filename = Dialog1.filename
           Set fill = fso.GetFile(filename)
           Set ts = fill.OpenAsTextStream(ForReading)
           Text1.Text = ts.ReadAll
    Err:
           Exit Sub
      

  2.   

    '以下是读取Binary file的程式
    Dim Buff() as ByteOpen "d:\csys\8504\ctc" For Binary Access Read As #1
    ReDim Buff(267)Do While Not EOF(1)
       Get #1, , Buff  '每次读268个byte进来
       'Call 处理Buff 的Routine
    Loop
    Close #1'以下是写入Binary file的程式
    Dim Buff() As Byte
    Open "c:\tc" For Binary Access Write As #1
    ReDim Buff(10)
    Buff = StrConv("这是一个11", vbFromUnicode)
    Put #1, , BuffReDim Buff(1)
    Buff(0) = 210
    Buff(1) = 70
    Put #1, , Buff
    Close #1
    End Sub
      

  3.   

    不过我想用API函数:
    Createfile,Readfile等实现,该如何做,
    我已经把数据读入了数组(byte类型),但不能付值给TEXTBOX,汉字就更不行了
    另外,我发现用SetfilePointer不能移动指针,要读文件只能一次读完,
    请指教,谢谢!  分数不成问题.
      

  4.   

    //另外,我发现用SetfilePointer不能移动指针,要读文件只能一次读完什么操作系统?
    9x不支持对一个磁盘文件进行异步读操作(重复读),当然也就不能用SetfilePointer移动指针
      

  5.   

    //不过我想用API函数:
    Createfile,Readfile等实现,该如何做,
    我已经把数据读入了数组(byte类型),但不能付值给TEXTBOX,汉字就更不行了
    读入了数组后,要用strconv函数转换编码,下面是详细的程序:
    窗体:一个按钮,一个textbox(设为多行)Const OFS_MAXPATHNAME = 128
    Const OF_CREATE = &H1000
    Const OF_READ = &H0
    Const OF_WRITE = &H1
    Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
    Private Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Long) As Long
    Private Type OVERLAPPED
            Internal As Long
            InternalHigh As Long
            offset As Long
            OffsetHigh As Long
            hEvent As Long
    End Type
    Private Type OFSTRUCT
            cBytes As Byte
            fFixedDisk As Byte
            nErrCode As Integer
            Reserved1 As Integer
            Reserved2 As Integer
            szPathName(OFS_MAXPATHNAME) As Byte
    End TypePrivate Sub Command1_Click()
        Dim OF As OFSTRUCT
        Dim hFile As Long
        Dim flen As Long
        Dim hfilename As String
        Dim lnglong As Long
        Dim buff() As Byte
        Dim i As Long
        Dim realnum As Long
        hfilename = "D:\ms\swinapi12\mc.txt"
        hFile = OpenFile(hfilename, OF, OF_READ)
        flen = GetFileSize(hFile, lnglong)
        ReDim buff(flen - 1)
        i = ReadFile(hFile, buff(0), flen, realnum, ByVal 0&)
        CloseHandle hFile
        Dim s As String
        s = StrConv(buff, vbUnicode)
        Text1.Text = s
    End Sub