/// <summary>
/// 检查是否为标准图幅编号
/// </summary>
/// <param name="MapNumber">图幅编号</param>
/// <returns>检查结果True/false</returns>
private bool CheckMapNumber(string MapNumber)
{
int ColumnNumber100;
if (MapNumber.Length == 3)//1:100万图幅规则
{
Regex RegMapNumber = new Regex(@"^[A-S]\d\d$");
if (RegMapNumber.IsMatch(MapNumber.ToUpper()))
{
ColumnNumber100 = Convert.ToInt32(MapNumber.Substring(1, 2));
if (ColumnNumber100 <= 60)
{ return true; }
}
}
if (MapNumber.Length == 10)//其他图幅规则
{
string ScaleMark = "";
int ColumnNumber;
int RowNumber;
int RowMax = 0;
int ColumnMax = 0;
Regex RegMapNumber = new Regex(@"^[A-S]\d\d[B-H]\d\d\d\d\d\d$");
if (RegMapNumber.IsMatch(MapNumber.ToUpper()))
{
ScaleMark = MapNumber.Substring(3, 1);
switch(ScaleMark)
{
case "B":
RowMax = 2;
ColumnMax = 2;
break;
case "C":
RowMax = 4;
ColumnMax = 4;
break;
case "D":
RowMax = 12;
ColumnMax = 12;
break;
case "E":
RowMax = 24;
ColumnMax = 24;
break;
case "F":
RowMax = 48;
ColumnMax = 48;
break;
case "G":
RowMax = 96;
ColumnMax = 96;
break;
case "H":
RowMax = 192;
ColumnMax = 192;
break;
default:
RowMax = 0;
ColumnMax = 0;
break;
}
ColumnNumber100 = Convert.ToInt32(MapNumber.Substring(1, 2));
RowNumber = Convert.ToInt32(MapNumber.Substring(4, 3));
ColumnNumber = Convert.ToInt32(MapNumber.Substring(7, 3));
if (ColumnNumber100 <= 60 && RowNumber <= RowMax && ColumnNumber <= ColumnMax)
{ return true; }
}
}
return false;
}

  

C#检查标准图幅编号的更多相关文章

  1. 嵌入式C语言自我修养 08:变参函数的格式检查

    8.1 属性声明:format GNU 通过 __atttribute__ 扩展的 format 属性,用来指定变参函数的参数格式检查. 它的使用方法如下: __attribute__(( forma ...

  2. excel 2010 学习笔记一 Vlookup 函数的使用

    有这么一句话说的好:在商用场合里,能证明你会基本的EXCEL操作技巧的两个检查标准就是会不会用VLOOKUP函数以及数据透视表功能,那么今天就来总结一下VLOOKUP的一些简单实用的功能. 1.VLO ...

  3. nginx入门

    1.   前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Ngi ...

  4. Linux Hackers/Suspicious Account Detection

    catalog . Linux黑客帐号攻击向量 . Linux可疑帐号检测模型 1. Linux黑客帐号攻击向量 0x1: 将黑客帐号添加到"root"组 . useradd ha ...

  5. 『TCP/IP详解——卷一:协议』读书笔记——03

    2013-08-17 17:31:49 1.7 分用 分用(Demultiplexing):这是一个过程——当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议上的报文首 ...

  6. PowerDesigner使用教程 —— 概念数据模型 (转)

    一.概念数据模型概述    概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充.它从用户的观点出发对信息进行建模,主要用于 ...

  7. 验证(Verification)与确认(Validation)的差别

    验证(Verification)与确认(Validation)的差别 说法一: (2)“验证(Verification)”的涵义 通过提供客观证据对规定要求已得到满足的认定. (2)“确认(Valid ...

  8. OpenCV 编码样式指南

    OpenCV 编码样式指南   前言 本文档是对OpenCV中代码风格的简短说明,因为OpenCV的核心库(cv,cvaux)是用C和C++编写的,所以本文档仅对用C和C++代码的编写有效.   文件 ...

  9. InstallShield集成安装MSDE2000最小版本(三) fishout特许授权发布

    原文:InstallShield集成安装MSDE2000最小版本(三) fishout特许授权发布 原帖地址:http://blog.csdn.net/fishout/archive/2009/11/ ...

随机推荐

  1. GitHub上整理的一些工具[转载]

    Source:http://segmentfault.com/q/1010000002404545 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddi ...

  2. [原创]android自定义控件的最大高度MaxHeightView

    代码地址:https://github.com/Carbs0126/MaxHeightView android中部分控件具有maxHeight功能,如button等,但是对于ViewGroup类的控件 ...

  3. 一次流量稍高导致web项目慢的问题&解决

    项目上线后,用户越来越多,有一天出现一个issue:用户访问特别慢. 首先介绍下架构: haproxy/Nginx / \ node1 node2 | | redis redis(slave) | | ...

  4. xsocks 64位平台下编译问题小记

    1.src/common/public.h uint32_t lpParameter 改为 void* lpParameter; 2.SocksMgr.cpp DWORD WINAPI CSocksM ...

  5. MVC ASP.net流程 源代码分析

    AppDomainFactory.cs 1. public Object Create(String appId, String appPath) public Object Create(Strin ...

  6. synchronized关键字,Lock接口以及可重入锁ReentrantLock

    多线程环境下,必须考虑线程同步的问题,这是因为多个线程同时访问变量或者资源时会有线程争用,比如A线程读取了一个变量,B线程也读取了这个变量,然后他们同时对这个变量做了修改,写回到内存中,由于是同时做修 ...

  7. 玩转MAC OS!实测DIY兼容机装苹果系统

    1打造iMAC:DIY常规兼容机安装MAC OS回顶部 [PConline 评测]最近消息透露苹果下个月即将发布新系统MAC OS X 10.9,这是什么东西?对于苹果,留给我们印象最为深刻的是iPh ...

  8. perl备忘

    List Operators: sort reverse grep map my @castways = sort qw( first second third); # qw 给单词自动加上双引号 g ...

  9. raphael绘制矢量图2

    最近重新再次考虑了下raphael,也没办法把公司的项目给换成raphael的渲染了.大体上的效果稍微考了下其实并不难实现,难点大多集中在对路线以及子路线和方案的转换,以及位置的确定,几乎每操作一步都 ...

  10. SVN分支与合并

    分支的基本概念就正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史(如下图所示) ⑴创建分支 假设目前我 ...