数据文件格式如下:
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---------------------