void CReadpDlg::OnOK()
{
char filebuf[20480];
filebuf[0]=0;
static char BASED_CODE szFilter[] = "DAT Files (*.dat)|*.dat|All Files (*.*)|*.*||";
CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT,szFilter,this);
dlg.m_ofn.nMaxFile=20480;
dlg.m_ofn.lpstrFile=filebuf;
// dlg.m_ofn.lpstrInitialDir = CurWorkDir ;
if (dlg.DoModal()==IDOK)
{
POSITION pos = dlg.GetStartPosition(); //獲取檔案位置
while(pos)
{
CString filedat="", filepos="", filess1="";
CString fileext="", filetitle=""; //不帶擴展名的檔案名
FILE* fp=NULL;
//CStdioFile f1;
filedat=dlg.GetNextPathName(pos); //得到檔案路徑
int dirpos=filedat.ReverseFind('.'); //
fileext=filedat.Right(filedat.GetLength()-dirpos-1); //得到擴展名
if (fileext=="dat" || fileext=="DAT")
{
//filetitle=filedat.Left(dirpos); //得到不帶擴展名的檔案路徑
//filepos=filetitle+"_c.SS1"; //得到完整檔案名
// filess1=filetitle+"_c.SS1";
dirpos=filedat.ReverseFind('\\'); //
CString filedir1=filedat.Left(dirpos+1); //得到檔案名之前的路徑
CString currdir1 = filedir1 + "DAT1" + "\\";//得到新的沒有檔案名的路徑
BOOL m_bool1=CreateDirectory( currdir1 , NULL ); //創建一個目錄,路徑為currdir1
CString fname=filedat.Right(filedat.GetLength()-dirpos-1);//從右至左,獲取filedat.GetLength()-dirpos-1個字符,也就是獲得檔案名
dirpos=fname.ReverseFind('.'); //
CString filetitle=fname.Left(dirpos);// 沒有擴展名的檔案名
filess1=currdir1+filetitle+".DAT1"; //新檔案完整路徑
CString s1,ls1,lr1;
int length,td1,td2,td3,td4,td5,td6,td7;
double bathymetry,depth1,depth2,sig;
FILE* fp=fopen(filedat,"r"); //打開原始檔案
FILE* fpss=fopen(filess1,"w");
while (!feof(fp))
{
fscanf(fp,"%d %d %d %d %d %d\n",&td1,&td2,&td3,&td4,&td5,&td6); //讀取以空格為間隔的五個數 //新建一個fpss檔案,型別是WRITE
fprintf(fpss,"%d %d %d %d %d %d\n",td1,td2,td3,td4,td5,td6); //將上面讀取的五個數寫到檔案中
}
fclose(fp);
fclose(fpss);
}
}
}
}
uj5u.com熱心網友回復:
試試這一個寫法while(EOF != fscanf(...))
http://bbs.csdn.net/topics/310163449
uj5u.com熱心網友回復:
沒人么?求大神啊轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/87283.html
標籤:基礎類
上一篇:編程實作正則運算式轉換為 NFA
