Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350832
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:02:30

数据文件格式如下:

2003年12月18日09点37分36秒      文件名:20031218093736.dat     //文件头用于说明存储文件的时间,共48个字符,文件名18个字符

T1:   0     0     400         //计算所用的参数设置
T2:  50     0     400
T3:  25    60     400                      //以下为数据   第一列为数据的序号

4   12264      15211      16130      12178     14370     18643     1756     878     2634     3513
   -15.12392   -10.08382
5   12264      15211      16130      12178     14370     18643     1756     878     2634     3513
   -15.12392   -10.08382
 .
 .
 .
我现在想打开文件后,将里面的数据取出,并且把参数值T1,T2,T3的值也取出,重新计算;
即,将 12264      15211      16130      12178     14370     18643     1756     878     2634     3513
取出经过从新计算后得到-15.12392   -10.08382 ,或者更精确的值
你帮我看看下面的程序,是这么提取吗?我真的不会处理,怎样才能将文件名几个参数取出出来?
FILE *f;
char buf[1024];
AnsiString Line,str;
int n=1;
int x1,y1,z1,x2,y2,z2,x3,y3,z3;
if((f=fopen("mydata.txt","rb"))!=NULL)
{
  while(fgets(buf,1024,f)) //从文件里面读一行到 buf
   {
    if(n==1)
    {
      Line = AnsiString((char*)Buf);
      str=Line.SubString(31,Line.Length()).Trim();//取出的文件名就是字符串str
    }
    if(n==2)
    {
      Line = AnsiString((char*)Buf);
      str=Line.SubString(4,Line.Length()).Trim();
      x1=StrToInt(str.SubString(1,4));
      str=Line.SubString(4,Line.Length()).Trim();
      y1=StrToInt(str.SubString(1,4));
      str=Line.SubString(4,Line.Length()).Trim();
      z1=StrToInt(str.SubString(1,4));
    }
   .....
   }
  fclose(f);
}

好像这段程序太繁琐了,你能否给我写段程序提取出文件名?其余我照着编写好吗?
对了,第二行是空行,用fgets能读吗?还是直接读第三行?

谢谢了,帮帮忙,我实在是不会处理。

祝你圣诞节快乐!
 

--------------------next---------------------

阅读(1114) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~