txt 文件 获取行。。。

   
#include <Windows.h>
#include <stdio.h>


/*
会假设载入的是文本文件 在末尾加上 '\0'
*/
LPBYTE LoadStringFromFile(const char *file,DWORD *size)
{
	DWORD fsize;
	HANDLE hfile;
	LPBYTE buff;
	DWORD BytesRead = 0;
	hfile = CreateFileA(file,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
	if(INVALID_HANDLE_VALUE == hfile)
	{
		return NULL;
	}
	fsize = GetFileSize(hfile,NULL);
	if(0 == fsize)
	{
		CloseHandle(hfile);
		return NULL;
	}
	buff = (LPBYTE)malloc(fsize+1);
	if( NULL == buff)
		goto go_out;
	ReadFile(hfile,buff,fsize,&BytesRead,NULL);
	*size = BytesRead;
	buff[BytesRead] = 0;
go_out:
	if(NULL != hfile)
		CloseHandle(hfile);
	return buff;
}


BOOL process_text(const char *filename,BOOL (CALLBACK *_func)(char *))
{
	char *token ; 
	char *next_token ;
	char *data;
	DWORD size;

	data = (char *)LoadStringFromFile(filename,&size);

	if(data)
	{
		token = strtok_s ( data,"\r\n", &next_token);

		while ((token != NULL))
		{
			if(_func(token))
			     token = strtok_s( NULL,"\r\n", &next_token);
			else
				break;
		}

		free(data);
		return TRUE;
	}
	return FALSE;
}

BOOL CALLBACK xxx(char *str)
{
	printf("%s   \n",str);
	return TRUE;
}

int main(int argc ,char **argv)
{
	process_text("c:\\1.txt",xxx);
	getchar();
	return 0;
}

你可能感兴趣的:(txt 文件 获取行。。。)