資源簡介
利用GDAL 將氣象數據的點文本文件轉成矢量數據,并加入批處理程序,能夠批量處理整個文件夾下的所有的點txt文本

代碼片段和文件信息
#include?“CBrowseDir.h“
CBrowseDir::CBrowseDir()
{
//用當前目錄初始化m_szInitDir
getcwd(m_szInitDir_MAX_PATH);
//如果目錄的最后一個字母不是‘\‘則在最后加上一個‘\‘
int?len=strlen(m_szInitDir);
if?(m_szInitDir[len-1]?!=?‘\\‘)
strcat(m_szInitDir“\\“);
}
CBrowseDir::~CBrowseDir(void)
{
}
bool?CBrowseDir::SetInitDir(const?char?*dir)
{
//先把dir轉換為絕對路徑
if?(_fullpath(m_szInitDirdir_MAX_PATH)?==?NULL)
return?false;
//判斷目錄是否存在
if?(_chdir(m_szInitDir)?!=?0)
return?false;
//如果目錄的最后一個字母不是‘\‘則在最后加上一個‘\‘
int?len=strlen(m_szInitDir);
if?(m_szInitDir[len-1]?!=?‘\\‘)
strcat(m_szInitDir“\\“);
return?true;
}
vector?CBrowseDir::BeginBrowseFilenames(const?char?*filespec)
{
ProcessDir(m_szInitDirNULL);
return?GetDirFilenames(m_szInitDirfilespec);
}
bool?CBrowseDir::BeginBrowse(const?char?*filespec)
{
ProcessDir(m_szInitDirNULL);
return?BrowseDir(m_szInitDirfilespec);
}
bool?CBrowseDir::BrowseDir(const?char?*dirconst?char?*filespec)
{
_chdir(dir);
//首先查找dir中符合要求的文件
long?hFile;
_finddata_t?fileinfo;
if?((hFile=_findfirst(filespec&fileinfo))?!=?-1)
{
do
{
//檢查是不是目錄
//如果不是則進行處理
if?(!(fileinfo.attrib?&?_A_SUBDIR))
{
char?filename[_MAX_PATH];
strcpy(filenamedir);
strcat(filenamefileinfo.name);
cout?< if?(!ProcessFile(filename))
return?false;
}
}?while?(_findnext(hFile&fileinfo)?==?0);
_findclose(hFile);
}
//查找dir中的子目錄
//因為在處理dir中的文件時,派生類的ProcessFile有可能改變了
//當前目錄,因此還要重新設置當前目錄為dir。
//執行過_findfirst后,可能系統記錄下了相關信息,因此改變目錄
//對_findnext沒有影響。
_chdir(dir);
if?((hFile=_findfirst(“*.*“&fileinfo))?!=?-1)
{
do
{
//檢查是不是目錄
//如果是再檢查是不是?.?或?..?
//如果不是進行迭代
if?((fileinfo.attrib?&?_A_SUBDIR))
{
if?(strcmp(fileinfo.name“.“)?!=?0?&&?strcmp
(fileinfo.name“..“)?!=?0)
{
char?subdir[_MAX_PATH];
strcpy(subdirdir);
strcat(subdirfileinfo.name);
strcat(subdir“\\“);
ProcessDir(subdirdir);
if?(!BrowseDir(subdirfilespec))
return?false;
}
}
}?while?(_findnext(hFile&fileinfo)?==?0);
_findclose(hFile);
}
return?true;
}
vector?CBrowseDir::GetDirFilenames(const?char?*dirconst?char?*filespec)
{
_chdir(dir);
vectorfilename_vector;
filename_vector.clear();
//首先查找dir中符合要求的文件
long?hFile;
_finddata_t?fileinfo;
if?((hFile=_findfirst(filespec&fileinfo))?!=?-1)
{
do
{
//檢查是不是目錄
//如果不是則進行處理
if?(!(fileinfo.attrib?&?_A_SUBDIR))
{
char?filename[_MAX_PATH];
strcpy(filenamedir);
strcat(filenamefileinfo.name);
filename_vector.push_back(filename);
}
}?while?(_findnext(hFile&fileinfo)?==?0);
_findclose(hFile);
}
//查找dir中的子目錄
//因為在處理dir中的文件時,派生類的ProcessFile有可能改變了
//當前目錄,因此還要重新設置當前目錄為dir。
//執行過_findfirst后,可能系統記錄下了相關信息,因此改變目錄
//對_findnext沒有影響。
_chdir(dir);
if?((hFile=_findfirst(“*.*“&fileinfo))?!=?-1)
{
do
{
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????15960??2018-03-20?20:17??main.cpp
?????文件???????4572??2018-03-19?09:35??TxtFileProc.cpp
?????文件???????1202??2018-03-16?10:28??TxtFileProc.h
?????文件???????4120??2016-11-22?09:21??CBrowseDir.cpp
?????文件???????1454??2016-11-22?09:21??CBrowseDir.h
?????文件???????1010??2016-11-22?09:21??CStatDir.h
?????文件???????1391??2018-03-20?11:31??GetImageInfo.cpp
?????文件????????855??2018-01-24?15:35??GetImageInfo.h
?????文件????????386??2018-03-20?15:05??InfoStruct.h
-----------?---------??----------?-----??----
????????????????30950????????????????????9
- 上一篇:堆排序C語言實現
- 下一篇:stdint.h兼容C語言頭文件
評論
共有 條評論