一个文件可能很大,无法一次读取到内存中,所以要分段读取;虽然简单,不过经常用到,就写到这里;
这里为了简单演示,将所有代码在一个函数中完成,具体应用中当然还是要封装一下;
void CTmfc2Dlg::ReadFileT()
{
// TODO: Add your control notification handler code here
char * pstrFileName = "G:\\176x144.264";
const int nBufLen = 1000;
BYTE pbuf[nBufLen]={0};
int nTell = 0;
int nReadLen = 0;
static int nFileLen = 0;
static BOOL b = TRUE;
if ( b == TRUE )//»ñÈ¡Îļþ´óС£»
{
FILE * fpFileLen = fopen( pstrFileName, "r+b" );
fseek( fpFileLen, 0, SEEK_END );
nFileLen =ftell(fpFileLen);
fclose(fpFileLen);
b = 0;
}
static FILE * fp = fopen( pstrFileName, "r+b" );
nReadLen = fread( pbuf, 1, nBufLen, fp );
nTell = ftell( fp );
SetDlgItemInt( IDC_EDIT1, nReadLen );
SetDlgItemInt( IDC_EDIT2, nTell );
SetDlgItemInt( IDC_EDIT3, nFileLen );
if ( nTell == nFileLen )
{
fclose( fp );
AfxMessageBox("Îļþ¶ÁÈ¡OK¡£");
}
}