반응형
long GetLastNLine(int nLastLine)
{
int nLineCount = 0;
char ch = '\0';
TCHAR szBuf[8192] = _T("");
int nResult = 0;
long lCurPos = 0;
FILE* fp = fopen("20121119_10.log", "r");
fseek(fp, -1, SEEK_END);
//fseek(fp, -1, SEEK_CUR);
while( 1 )
{
ch = (char)fgetc(fp);
if( ch == '\n' )
{
nLineCount++;
if( nLineCount >= nLastLine )
{
break;
}
fseek(fp, -1, SEEK_CUR);
}
nResult = fseek(fp, -2, SEEK_CUR);
if( nResult != 0 ) // File 의 시작 위치 까지 왔을 때에는 break;
{
fseek(fp, 0, SEEK_SET);
break;
}
}
while( _fgetts(szBuf, sizeof(szBuf), fp) )
{
_tprintf(_T("%s\n"), szBuf);
}
lCurPos = ftell(fp);
fclose(fp);
return lCurPos;
}
Text 파일을 처음부터 읽는게 아닌 마지막에서 n 줄 부터 출력하는 예제
'Programming > C/C++' 카테고리의 다른 글
| INADDR_LOOPBACK (0) | 2015.05.22 |
|---|---|
| 1byte unsigned char 를 4비트 단위로 쪼개서 사용하기 (0) | 2015.05.22 |
| POSIX timer sample (0) | 2014.10.08 |
| 내 네트워크상의 모든 컴퓨터 이름 목록과 IP 주소 출력 (0) | 2012.12.20 |
| Visual Studio 2012 Thread Library 사용 (1) | 2012.08.21 |
| C++ UAC Class (0) | 2012.02.28 |
| [c/c++] srand 사용시 주의사항 (0) | 2011.08.22 |
| VC Express. Dll 또는 Lib 프로젝트에서 버전을 표시 하자. (1) | 2009.08.11 |