寻找用 readfile读取文件的 原代码.谢谢.(需要独到文件的2进制数)

解决方案 »

  1.   

    dim bytes() as byteopen "c:\1.exe" for binary access read as #1
         get #1,,bytes()
    close #1'bytes()数组就是二进制的内容
      

  2.   

    plz use readfile api function
      

  3.   

    do 

        if (ReadFile(hFile, buff, 4096, &dwBytesRead, NULL)) 
        { 
            dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END); 
            LockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0); 
            WriteFile(hAppend, buff, dwBytesRead, 
                &dwBytesWritten, NULL); 
            UnlockFile(hAppend, dwPos, 0, dwPos + dwBytesRead, 0); 
        } 
    } while (dwBytesRead == 4096); 
      

  4.   

    问一句,为什么一定要用API来实现? 是不是运行环境有限制? 还是其他什么原因?
      

  5.   

    声明:
    Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long
    返回值:
    Long,非零表示成功,零表示失败。会设置GetLastError。如启动的是一次异步读操作,则函数会返回零值,并将ERROR_IO_PENDING设置成GetLastError的结果。如结果不是零值,但读入的字节数小于nNumberOfBytesToRead参数指定的值,表明早已抵达了文件的结尾
    参数:
    hFile ----------  Long,文件的句柄  lpBuffer -------  Any,用于保存读入数据的一个缓冲区  nNumberOfBytesToRead -  Long,要读入的字符数  lpNumberOfBytesRead -  Long,从文件中实际读入的字符数  lpOverlapped ---  OVERLAPPED,如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal
      As Long,并传递零值)并非每种操作系统都支持对每种设备进行异步操作。Windows
      95不支持对一个磁盘文件进行异步读操作(重复读)
      

  6.   

    补充一句可以用openfile得到文件句柄