自动批处理

计算机学术语

批处理(Batch),也称为批处理脚本。批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。自动批处理即不需程序员操纵而主动直接操作的批处理过程,主要应用于批量处理大量数据、文件。

简介
批处理(Batch),也称为批处理脚本。批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。自动批处理即不需程序员操纵而主动直接操作的批处理过程,主要应用于批量处理大量数据、文件。
研究背景
当数据量巨大且所需操作繁琐时,采用逐个文件人工处理,从技术层面看不成问题,但由于数据量庞大,数据组织目录层次深,采用人工处理,不仅工作量大,而且容易漏转换或文件被再次误转换,存在质量隐患,因此必须采用自动批处理。
关键技术
项目的关键问题是要解决数据处理的唯一性问题,即既不漏处理,也不重复处理。由于数据源庞大,难以采用人工的方法进行分析,归纳、归类处理,而且最怕的是漏转换,多次转换。因此,需要采用一种有效的方法对所关心的问题,给定规则或条件,进行数据探测。数据探测就是对数据对象进行遍列,实质是对数据源的目录与文件进行遍列。对于有限深度的数据源或深度已知的数据源,可以采用for(),do{}while()等常规编程手段,给定探测深度,对数据源进行挖掘。但本项目由于数据的庞大和复杂性,显然常规手段难以达到目的。根据数据源的特点,考虑采用递归技术,使转换程序具备自动批量功能。
在程序设计中,递归在算法的描述中被经常采用,很多问题可以用递归算法求解。例如,有些问题的定义形式本身就是递归的,如阶乘函数;有些数据结构,如二叉树、广义表等,由于结构本身固有的递归特性,所以对它们的操作可以递归进行;还有一类,虽然问题本身没有明显的递归结构,但用递归技术求解比其他方法更容易,如最经典的汉诺塔问题和八皇后问题等。另外,由于递归算法省略了程序设计中的许多细节操作,简化了程序设计过程,使得在求解许多复杂问题时,采用递归算法比不用递归算法要简单得多,并且程序结构清晰、易读,正确性容易验证,这给用户编制程序和调试程序带来很大方便。
所谓递归,就是指用自身的结构来描述自身,以实现层次数据结构的查询和访问。递归算法常用于递归调用方面,即子过程或函数自己调用自己。
递归调用必须是有限的,有限才有意义。所以必须设置相关的控制条件,使其成为有限。这可以通过条件语句(If语句)来实现,即只有在设定的条件成立时递归才继续,否则终止递归。可见,构成递归必须满足以下条件:
(1)有明确的结束递归的边界条件(又称终止条件)以及结束时的边界值;
(2)过程的描述中包含其本身,即能用递归形式表示,且递归向终止条件发展。递归算法求解问题的基本思想是:对于较为复杂的问题,把原问题分解成若干个相对简单且类同的子问题,这样原问题就可递推得到求解。
当一个问题存在上述构成递归的条件时,该问题便可以利用递归算法进行处理。具体是:
当所求解问题难于直接求解时,首先,把问题分解成若干个难度较小、较容易求解的子问题,子问题与原问题具有类同的结构。如果子问题能够直接求解,则解之;如果子问题仍不能直接求解,将每个子问题再分解成若干个更简单的子问题,直到分解出的子问题能够很容易地求解或解为已知,这是实现递归的模板。然后,设计递归出口(即结束递归的边界条件),在满足出口条件时,递归函数不能再调用自己,必须返回一个确定的值。将这两个方面的问题分析好之后,就可以在子程序体中定义递归调用了。
在通常情况下,递归调用都是要受到条件控制的,而且在被调用的过程中,会对调用条件进行有规律的修改,直到满足边界条件,返回边界值,结束递归;然后按照原来的路径逐层返回,求出原问题的解。由此可知,递归算法设计的关键在于递归描述和递归终止条件。
递归算法的执行过程是不断地自调用,直到到达递归出口才结束。然后,递归算法开始按最后调用的过程最先返回的次序逐层返回,返回到最外层的调用语句时递归算法执行过程结束。可见,递归的实现过程包含了“调用”和“返回”两个阶段。
主要技术问题
要实现项目数据的自动批处理,除基于递归技术编程开发外,尚需解决以下主要技术问题。
转换对象坐标取位不一致
对于测绘数据而言,在不含带号的情况下,X为6个整数位,Y为7个整数位。由于种种原因,数据源中的坐标数据取位相当凌乱,既有在统一坐标系的前提下的不同取位数据,也有独立坐标系坐标的数据,个别的是经过坐标旋转过的数据。如果按自身文件的坐标值直接插入拼接处理,显然不合适。
解决方法:
(1)首先利用已有的基础地理信息数据,诸如1:1万地图数据和水利、地名数据等,建立简易且有效的地理信息框架检核数据库。
(2)采用递归技术遍列数据源,对于坐标取值不足位(X为6个整数位,Y为7个整数位)的数据,先补足其整数位,判断补位后的坐标取值范围是否合理,若不合理,重新补位直至合理。然后利用“地理信息框架检核数据库”的数据对诸如公路、地名、水系等框架数据进行比较检核。若检核获通过,将数据文件的相关信息记入“数据处理日志数据库”,信息包括:原文件的名称、路径、数据坐标的取位情况,坐标补位数值,从原文件中获取的坐标系统信息,测图时间、测图单位等,同时获取并记录该数据文件的所覆盖范围的坐标串。
(3)对于经上述步骤处理与检核,不符合要求的文件,暂时将其作为独立坐标系,单独人工处理:由熟悉本地地理情况的人员分析判断个案处理,或查询其他的文档记载后分析处理。经验证,除少量数据需要人工处理外,绝大部分文件通过上述的前两个步骤正确处理到位。
历史数据与最新数据问题
采用递归技术遍列数据源,建立数据源的数据文件信息数据库,通过拓扑分析:
(1)区域内只有唯一一套数据时,该数据被认为是当前最新的测图数据;
(2)当区域内有两套或以上数据交集时,按测图年份取最近测的地形图作为当前的测图数据,其他数据作为历史数据,建立到历史数据库中。
坐标转换
原理是:首先获取描述实体位置信息的定位点坐标,然后根据严密的坐标转换公式计算出转换后的坐标值;最后通过修改实体定位点的坐标为转换后的坐标值。每一类实体均要单独处理,常见地形图中包含的实体主要有:点(Point)、文本(Text)、直线(Line)、多线(MLine)、多段线(Polyline)、样条曲线(Spline)、弧(Arc)、圆(Circle)、椭圆或椭圆弧(Ellipse)、块(Block)、图案填充(Hatch)等。之所以每一类实体要单独处理,是因为每类实体有不同的位置定义,例如文本是由位置点(position)定位的;弧是由弧心点(center)、半径(radius)、起始角(startAngle)、终止角(endAngle)定位的等。
布局及视口的处理
对于某些规划图,图面信息记录在布局中,因此需要对布局进行转换。对于这种情况,程序处理过程是:首先获取模型空间图元坐标信息进行转换,然后获取所有布局空间图元坐标信息进行转换,由于布局空间图元是与视口(Viewport)关联的,因此只需对视口进行坐标转换即可,对于视口来说,有两个中心坐标,一个是视口的中心点(视口在布局中的中心点坐标),另一个是当前视口中视图的中心点(视口中视图在模型空间的中心点),当模型空间图元坐标转换后,布局空间视口中的视图中心点坐标也应该相应做转换,所以转换此坐标即可转换该视口。
基于ObjectARX坐标转换程序开发
由于ObjectARX使用了C++方法,并以动态链接库的形式被调用,因此执行速度快,安全性好。与其他几种开发工具相比,其独有的对AutoCAD内部数据结构的直接使用和扩展,使它的功能得到了极大的增强,而且ObjectARX库包含了各种工具,用户可以利用这些工具来使用AutoCAD的开放结构,并且可以直接访问AutoCAD数据库、图形系统和用户自定义命令。
自动批处理文件
自动批处理文件(AUTOCJTEXE.BAT)与系统配置文件(COIFG.)是存在于系统SSY盘根目录下的两个文件。在O启动过程DOS中,系统要在根目录寻找CONIFG.SYS并执行它,DOS启动后,紧接着也要在根目录下寻找AUTOEXEC.BAI,并执行。
为了防止他人进入系统查看或更改自动批处理文件和系统配置文件,可将这两个文件改名。通常,微机上的这两个文件是在根目录下才起作用,通过工具PC5(PC.Tools5.0)可将其改名。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市