写一个bool GetPointFile(CFile file)的函数;
文本文件内的格式为“点名 东坐标 北坐标 高程 备注(注意可有可不有),例如:
a 123.6 3.215 56.3 abd
ee 2.36 6.36 2.36 
ff 2.036 7.369 0.321 nn
读完以后,判断文件格式有没有错误.

解决方案 »

  1.   

    http://topic.csdn.net/u/20070531/15/45ee025a-dd88-4a60-8871-883e0ab712bb.html 
    http://topic.csdn.net/u/20071018/14/ad4a99b0-e5e6-4eb5-99d7-4a351ddd5e5b.html
      

  2.   

    可能调用fseek函数试试,定位读.
      

  3.   

    兄弟,我帮你写了,但不敢肯定,就别的高手看看,你自己在测试下吧!!惭愧,想简单了.....
    bool   GetPointFile(CFile   file) 
    {
    CString FileData;
    CStdioFile File;
    bool bis;

    File.Open("E:\\test\\test.txt",CFile::modeReadWrite|CFile::shareDenyNone);  do
    {
            bis=File.ReadString(FileData); //读取一行文本到rString
       if(bis)
       {
    int i,num=0;
    char c;
    char str[30];
            sprintf(str,"%s",FileData); 

    for(i=0;(c=str[i])!='\0';i++)          //把一行的数据逐个字符读出来
    {
    if(str[i]!=' '&&str[i+1]==' ')  //如果一个 数字 或 字母 的前一个不是空格,后一个是空格则默认 是一列的 数据
    {
    num++;
    }
    }
    char sr[10];
    sprintf(sr,"%d",num);
    if(num==!4&&num==!5)
    return 0;
       } }while(bis!=false); File.Close();
    return true;
    }
    顺便问一句,哥们你是不是搞GIS的啊??
      

  4.   

    谢谢啦!我是学测绘的,所以编程方面很差,GIS懂的也不多,哥们是同行啊?
      

  5.   

    for(i=0;(c=str[i])!= '\0 ';i++)   //把一行的数据逐个字符读出来 

    if(str[i]!= '   '&&str[i+1]== '   ')     //如果一个   数字   或   字母   的前一个不是空格,后一个是空格则默认   是一列的   数据 

    num++; 


    这里搞不清是怎么回事,for和if里面可以写这么多东西吗?
      

  6.   

    晕,怎么变了啊,拷出来还是这样??
    应该是str[i]!=空格 和;&&str[i+1]==空格
    num++
    怎么写进去 成这样的了啊  不懂????
      

  7.   

    解决了,非常感谢litomboy,也要谢谢凤矶和其他提建议的人,只可惜我的分不多,一人得一点吧.有了大家的帮助我这个苯苯的家伙也在一天天进步啊!