• 大小: 9KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: C/C++
  • 标签: GDAL  批处理  

资源简介

利用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 << filename << endl;
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


评论

共有 条评论