nb147
驱动牛犊
驱动牛犊
  • 注册日期2005-07-28
  • 最后登录2005-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:995回复:1

门外汉求救!!

楼主#
更多 发布于:2005-07-28 11:37
  刚开始学WinCE编程,以前的编程基础就不行,这次算是第一次开始系统学编程碰到一些问题,像大家求救!!不胜感激!!

问题如下:

利用WinCE来实现打开,读取一个文本文档.

WinCE下打开文件上面要求用creatfile(a,b,c,d),这个函数的第一个参数是需要文件的路径和文件名,我把文档放在了工作区内,就只需要给出文件名?不知道怎么弄,文件名是"system.txt",直接用文件名当第一个参数好象不行.我char 一个变量把"system.txt"赋给变量在用变量名放进去做参数也不行. 

然后就是WinCE的读取文件是ReadFile() 这个函数中有个参数是定义总共读取多少个字节.文本文档它每行的字节数又不定,好象这个函数读取文本文档不是很方便,上面要求不用这个函数来读取文件.我想用fgets来读取,但是涉及到文件的指针,这时候怎么获取这个文件的指针呢,有一个setfilepoint好象是用来移动文件的指针,也可以获取当前位置的指针,但是怎么获得fgets中需要的文件指针呢??

很不懂   

希望大家不吝指教 我是个绝对的菜鸟,才开始学习编程,问题比较肤浅而且乱七八糟的,大家见谅
文字文字文字
flyskyok
驱动牛犊
驱动牛犊
  • 注册日期2003-05-02
  • 最后登录2010-04-10
  • 粉丝0
  • 关注0
  • 积分153分
  • 威望18点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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);
游客

返回顶部