阅读:1002回复:1
门外汉求救!!
刚开始学WinCE编程,以前的编程基础就不行,这次算是第一次开始系统学编程碰到一些问题,像大家求救!!不胜感激!!
问题如下: 利用WinCE来实现打开,读取一个文本文档. WinCE下打开文件上面要求用creatfile(a,b,c,d),这个函数的第一个参数是需要文件的路径和文件名,我把文档放在了工作区内,就只需要给出文件名?不知道怎么弄,文件名是"system.txt",直接用文件名当第一个参数好象不行.我char 一个变量把"system.txt"赋给变量在用变量名放进去做参数也不行. 然后就是WinCE的读取文件是ReadFile() 这个函数中有个参数是定义总共读取多少个字节.文本文档它每行的字节数又不定,好象这个函数读取文本文档不是很方便,上面要求不用这个函数来读取文件.我想用fgets来读取,但是涉及到文件的指针,这时候怎么获取这个文件的指针呢,有一个setfilepoint好象是用来移动文件的指针,也可以获取当前位置的指针,但是怎么获得fgets中需要的文件指针呢?? 很不懂 希望大家不吝指教 我是个绝对的菜鸟,才开始学习编程,问题比较肤浅而且乱七八糟的,大家见谅 文字文字文字 |
|
沙发#
发布于:2005-07-29 00:03
1.一定要写成CreateFile(_T("system.txt"),GENERIC_READ,...),如果这样写还是失败了并且GetLastError()返回值为2(ERROR_FILE_NOT_FOUND),则说明文件路径不对,请修改_T("system.txt"),加上正确的相对路径,或者绝对路径。
2.win32环境下,所有读文件最终都是调用ReadFile实现的,包括fgets()。若要对文件的进行一行一行的处理,ReadFile确实不太方便。通常、通常情况下、一般而言,处理这种文件不会用到setfilepoint()函数。 3.使用fgets的方法: //打开文件 FILE* fp = _tfopen( _T("system.txt"), _T("rt")); if( fp==NULL ) { // error ... return; } //读一行,如果system.txt是ASCII格式的: char szTemp[256]; memset( szTemp, 0, sizeof(szTemp) ); int n = fgets(szTemp,sizeof(szTemp)-1,fp); //读一行,如果system.txt是UNICODE格式的: wchar_t szTemp[256]; memset( szTemp, 0, sizeof(szTemp) ); int n = fgetsw(szTemp,sizeof(szTemp)/sizeof(wchar_t)-1,fp); // 读下一行,重复以下内容 memset( szTemp, 0, sizeof(szTemp) ); n = fgets.....; //关闭文件 fclose(fp); |
|