int dTrace;
short *g;
int FileLabel;
file.Seek(4,CFile::begin);
file.Read(&FileLabel,sizeof(int));
int m=0;
int pos=-1;
char test[200];
float tmpOffSet2;
CString tmpS1,tmpS2;
switch(FileLabel)
{
case 2052:
file.Seek(28736,CFile::begin); //0X7040
file.Read(&dTrace,sizeof(int));
file.Read(&dNumPT,sizeof(int));
file.Seek(28780,CFile::begin); //706c
file.Read(test,sizeof(test));
tmpS1=test;
tmpS1.TrimLeft();
pos=tmpS1.Find('E');
if(pos>0)
{
pos=tmpS1.Find(" "); //space;
tmpS2=tmpS1.Right(tmpS1.GetLength()-pos);
tmpS1=tmpS1.Left(pos); //主频
pos=tmpS1.Find('E');
fMainFrequency=(float)atof((LPCTSTR)(tmpS1.Left(pos)));
tmpS1=tmpS1.Right(tmpS1.GetLength()-pos-1);
m=atoi((LPCTSTR)tmpS1); //以HZ为单位
m-=6;//以MHz为单位
fMainFrequency*=(float)pow(10,m);
//////////////////////////////////////////这个字段不知含义
tmpS2.TrimLeft();
pos=tmpS2.Find(' ');
tmpS2=tmpS2.Right(tmpS2.GetLength()-pos-1);
tmpS2.TrimLeft();
//////////////////////时窗,以s为单位
tmpS1=tmpS2;
pos=tmpS1.Find('E');
m_TimeTo=(float)atof((LPCTSTR)(tmpS1.Left(pos)));
tmpS1=tmpS1.Right(tmpS1.GetLength()-pos-1);
m=atoi((LPCTSTR)tmpS1); //s
m+=9; //ns
m_TimeTo*=(float)pow(10,m);
pos=tmpS2.Find(' ');
tmpS2=tmpS2.Right(tmpS2.GetLength()-pos-1);
tmpS2.TrimLeft();
///////////////////////////////////////重复
pos=tmpS2.Find(' ');
tmpS2=tmpS2.Right(tmpS2.GetLength()-pos-1);
tmpS2.TrimLeft();
///////////////////////////////////////////含义未知
pos=tmpS2.Find(' ');
tmpS2=tmpS2.Right(tmpS2.GetLength()-pos-1);
tmpS2.TrimLeft();
///////////////////////////////////////////含义未知
pos=tmpS2.Find(' ');
tmpS2=tmpS2.Right(tmpS2.GetLength()-pos-1);
tmpS2.TrimLeft();
//////////////////////////////////////////步长
tmpS1=tmpS2;
pos=tmpS1.Find('E');
fStep=(float)atof((LPCTSTR)(tmpS1.Left(pos)));
tmpS1=tmpS1.Right(tmpS1.GetLength()-pos-1);
m=atoi((LPCTSTR)tmpS1);
fStep*=(float)pow(10,m);
pos=tmpS2.Find(' ');
tmpS2=tmpS2.Right(tmpS2.GetLength()-pos-1);
}
else
{
fMainFrequency=0;
AfxMessageBox("读文件时发生错误,请将数据文件发送给老刘");
return;
}
/////0x5030 为第一个天线的位置. 20528
file.Seek(20528,CFile::begin); //706c
file.Read(test,sizeof(test));
tmpS1=test;
tmpS1.TrimLeft();
pos=tmpS1.Find(" "); //space;
tmpS1=tmpS1.Left(pos);
pos=tmpS1.Find('E');
OffSet=(float)atof((LPCTSTR)(tmpS1.Left(pos)));
tmpS1=tmpS1.Right(tmpS1.GetLength()-pos-1);
m=atoi((LPCTSTR)tmpS1); //以HZ为单位
OffSet*=(float)pow(10,m);
/////0x5830 为第一个天线的位置. 22576
file.Seek(22576,CFile::begin); //706c
file.Read(test,sizeof(test));
tmpS1=test;
tmpS1.TrimLeft();
pos=tmpS1.Find(" "); //space;
tmpS1=tmpS1.Left(pos);
pos=tmpS1.Find('E');
tmpOffSet2=(float)atof((LPCTSTR)(tmpS1.Left(pos)));
tmpS1=tmpS1.Right(tmpS1.GetLength()-pos-1);
m=atoi((LPCTSTR)tmpS1); //HZ
tmpOffSet2*=(float)pow(10,m);
OffSet-=tmpOffSet2;
OffSet=(float)fabs(OffSet);
/////////////////////
file.Seek(30780,CFile::begin);
for(i=0;i<dTrace;i++)
{
file.Seek(4,CFile::current);
file.Read(g,dNumPT*sizeof(short));
for(j=0;j<dNumPT;j++)
{ p[i*dNumPT+j]=q[i*dNumPT+j]=g[j];
}
}
break;
default:
return;
}
|