📄 fileprocess.cpp
字号:
#include "stdafx.h"
//#include "windows.h"
#include "Lambda.h"
#include "fstream.h"
#include "iomanip.h"
#include "math.h"
#include "MatrixLYQ.h"
#include "string.h"
#include <stdlib.h>
#include "FileProcess.h"
#include "PPT.h"
int ReadIni (char *lpIni,char Inobs[],char Innav[],char InSP3[],char InClk[],char OutPos[],char OutClock[],CONPARAMETAR &Par)
{
ifstream ConFile(lpIni,ios::in|ios::nocreate);
if (!ConFile)
{
cerr<<" * Can't open the file-ConFile.ini! *\n"
<<" * You should Create a control file named after 'ConFile.txt' *\n"
<<" * Program terminated with error ! *\n";
return 0;
}
char str[260];
char *p;
char note[80],eq[30];
do
{ if(ConFile.peek()==EOF)
break;
ConFile.getline(str,260,'\n');
if(str[0]==0)
continue;
if(p=strstr(str,"//"))
continue;
if(p=strstr(str,"Is_Model_PPP"))
{
p =strtok(str ," ");
p =strtok('\0'," ");
Par.ModelPPP =atoi(strtok('\0'," "));
continue;
}
if(p=strstr(str,"Is_Model_Holding"))
{
p =strtok(str ," ");
p =strtok('\0'," ");
Par.ModelHolding =atoi(strtok('\0'," "));
continue;
}
if(p=strstr(str,"Number_of_Days"))
{
p =strtok(str ," ");
p =strtok('\0'," ");
Par.Days =atoi(strtok('\0'," "));
continue;
}
if(p=strstr(str,"TropModel"))
{
p =strtok(str ," ");
p =strtok('\0'," ");
Par.TropModel =atoi(strtok('\0'," "));
continue;
}
if(p=strstr(str,"Input_Rinex_obs_file_dir"))
{
sscanf(str,"%s%s%s",note,eq,Inobs);//obs file dir to be processed
continue;
}
if((!Par.ModelPPP)&&strstr(str,"Input_Rinex_nav_file_dir"))
{
sscanf(str,"%s%s%s",note,eq,Innav);//nav file dir to be processed
continue;
}
if(Par.ModelPPP&&strstr(str,"Input_Sp3_nav_file_dir"))
{
sscanf(str,"%s%s%s",note,eq,InSP3);//sp3 file dir to be processed
continue;
}
//if(Par.ModelPPP&&strstr(str,"Input_Sp3_Clk_file_dir"))
if(strstr(str,"Input_Sp3_Clk_file_dir"))
{
sscanf(str,"%s%s%s",note,eq,InClk);//clk file dir to be processed
continue;
}
if(strstr(str,"Output_Position_file_dir"))
{
sscanf(str,"%s%s%s",note,eq,OutPos);//outpos file dir to be processed
continue;
}
if(strstr(str,"Output_Clock_file_dir "))
{
sscanf(str,"%s%s%s",note,eq,OutClock);//outclk file dir to be processed
continue;
}
else continue;
}while(1);
if(Par.TropModel<=0)
Par.TropModel=1;
if(Par.Days <=0)
Par.Days =30;
if(Par.PhaseSTD<0)
Par.PhaseSTD=0.02;
if(Par.PseudoSTD<0)
Par.PseudoSTD=0.50;
return 1;
}
int PPPMatchFile(char Inobs[],char InSP3[],char InClk[],char OutPos[],char OutClock[],CONPARAMETAR Par)
{
int day =Par.Days;
char** ObsFile =new char *[day];
char** SP3File =new char *[day];
char** ClkFile =new char *[day];
for(int i=0; i<day; i++)
{ ObsFile[i] = new char[260];
SP3File[i] = new char[260];
ClkFile[i] = new char[260];
}
char OutPosFile [260];
char OutClockFile[260];
int ObsNum,SP3Num,ClkNum;
char * note;
note="*.??O";
FileFind(Inobs,note,ObsFile,ObsNum);
note="*.sp3";
if(!FileFind(InSP3,note,SP3File,SP3Num))
{
note="*.eph";
FileFind(InSP3,note,SP3File,SP3Num);
}
note="*.clk";
FileFind(InClk,note,ClkFile,ClkNum);
if((ObsNum!=SP3Num)||(ObsNum!=ClkNum))
{ printf(" The number of Obs file is not equal to SP3/EPH or clock files.\n Please check the input files.\n");
return 0;
}
for( i=0;i<ObsNum;i++)
{ char cSource[260];
char * cBase;
strcpy(cSource,ObsFile[i]);
cBase=strrchr(cSource,92);
cBase++;
cBase=strtok(cBase,".");
strcpy(OutPosFile ,cBase);
strcpy(OutClockFile,cBase);
strcat(OutPosFile ,".pos");
strcat(OutClockFile ,".clk");
char szFile[80];
strcpy(szFile,OutPos);
strcat(szFile,"\\");
strcat(szFile,OutPosFile);
strcpy(OutPosFile,szFile);
strcpy(szFile,OutClock);
strcat(szFile,"\\");
strcat(szFile,OutClockFile);
strcpy(OutClockFile,szFile);
PPP(ObsFile[i],SP3File[i], ClkFile[i],
OutPosFile, OutClockFile,Par);
}
delete ObsFile[0];
delete SP3File[0];
delete ClkFile[0];
return 1;
}
int SPPMatchFile(char Inobs[],char Innav[],char InClk[],char OutPos[],char OutClock[],CONPARAMETAR Par)
{
int day = Par.Days;
char** ObsFile =new char *[day];
char** NavFile =new char *[day];
char** ClkFile =new char *[day];
for(int i=0; i<day; i++)
{ ObsFile[i] = new char[260];
NavFile[i] = new char[260];
ClkFile[i] = new char[260];
}
char OutPosFile [260];
char OutClockFile[260];
int ObsNum,NavNum,ClkNum;
char * note;
note="*.??O";
if(!FileFind(Inobs,note,ObsFile,ObsNum))
FileFind(Inobs,"*.??o",ObsFile,ObsNum);
note="*.??N";
if(!FileFind(Innav,note,NavFile,NavNum))
FileFind(Innav,".??n",NavFile,NavNum);
note="*.clk";
FileFind(InClk,note,ClkFile,ClkNum);
if((ObsNum!=NavNum)||(ObsNum!=ClkNum))
{ printf(" The number of Obs file is not equal to Nav files.\n Please check the input files.\n");
return 0;
}
for(i=0;i<ObsNum;i++)
{
char cSource[260];
char * cBase;
strcpy(cSource,ObsFile[i]);
cBase=strrchr(cSource,92);
cBase++;
cBase=strtok(cBase,".");
strcpy(OutPosFile ,cBase);
strcpy(OutClockFile,cBase);
strcat(OutPosFile ,".pos");
strcat(OutClockFile ,".clk");
char szFile[80];
strcpy(szFile,OutPos);
strcat(szFile,"\\");
strcat(szFile,OutPosFile);
strcpy(OutPosFile,szFile);
strcpy(szFile,OutClock);
strcat(szFile,"\\");
strcat(szFile,OutClockFile);
strcpy(OutClockFile,szFile);
SPP(ObsFile[i],NavFile[i],ClkFile[i],OutPosFile, OutClockFile,Par);
}
delete ObsFile[0];
delete NavFile[0];
delete ClkFile[0];
return 1;
}
int FileFind(char lpPath[],char * str,char ** FileName,int &FileNum)
{ // Find the file with the filter str and rank with the oder increased
FileNum=0;
char szFile[80];
WIN32_FIND_DATA FindFileData;
strcpy(szFile,lpPath);
strcat(szFile,"\\");
strcat(szFile,str);
HANDLE hFind=::FindFirstFile(szFile,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return 0;
//
while(TRUE)
{
if(FindFileData.dwFileAttributes& FILE_ATTRIBUTE_DIRECTORY )
{
if(FindFileData.cFileName[0]!='.')
{
strcpy(szFile,lpPath);
strcat(szFile,"\\");
strcat(szFile,FindFileData.cFileName);
cout<<"The following are the files in the dorctory "<<szFile<<endl;
// FileFind(szFile);
}
}
else
{ strcpy(szFile,lpPath);
strcat(szFile,"\\");
strcat(szFile,FindFileData.cFileName);
strcpy(FileName[FileNum],szFile );
if (FileNum)
{ int ini=FileNum;
for(int j=FileNum-1;j>=0;j--)
if(strcmp(FileName[ini],FileName[j])<0)
{ char Tem[260];
strcpy(Tem,FileName[ini]);
strcpy(FileName[ini],FileName[j]);
strcpy(FileName[j],Tem);
ini--;
}
}
FileNum++;
}
if(!FindNextFile(hFind,&FindFileData))
break;
}
FindClose(hFind);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -