|
查看: 1409|回复: 19
|
C# 计算IC number 怎样 set 限制 Length ?
[复制链接]
|
|
|
输入 xxxxxxxxxxxxx or xxxxxx-xx-xxxx 都可以计算
可是要怎样限制 他不要超过 12 or 14 个数字
我输入超过12个位数(没有 - 的话) 或 有 - 的超过 15 个数字,他还是跑去算
如果输入abcd 英文数字也是会跑出来 @@ |
|
|
|
|
|
|
|
|
|
|
发表于 4-6-2009 09:11 PM
|
显示全部楼层
|
弄一个preprocess routine,把全部非数字(0-9)去除掉才process就可以了嘛 |
|
|
|
|
|
|
|
|
|
|
发表于 4-6-2009 09:33 PM
|
显示全部楼层
|
用 Key Down event 来防止 user key in non numeric character |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-6-2009 09:56 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 5-6-2009 10:18 AM
|
显示全部楼层
|
为什么不用MaskedTextBox??设一个######-##-####的mask不就了了?还要这么麻烦? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 5-6-2009 10:40 AM
|
显示全部楼层
我不会呢
可以教我吗 大大?
icnum.Mask =
"#####-##-####";
这样?
[ 本帖最后由 xiaoxiang 于 5-6-2009 10:45 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 5-6-2009 11:44 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 5-6-2009 01:13 PM
|
显示全部楼层
原帖由 xiaoxiang 于 5-6-2009 10:40 AM 发表 
我不会呢
可以教我吗 大大?
icnum.Mask =
"#####-##-####";
这样?
是没错啦,不过为什么不用MaskedTextBox 的 property editor 里面的 Mask Editor 呢??你很喜欢绕远路哦。
另外补充一下, # 代表的是数目字+空白,如果你要它只接受纯数字,应该使用 0 作为Mask (请参考 MaskTextBox 的说明书) |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 6-6-2009 10:30 AM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 6-6-2009 02:41 PM
|
显示全部楼层
呃,什么年代了还在写console application?学校的功课?那些吃饱等死的老师真的是害人不浅啊,都2009年了,还拿1980年的东西来教学生??肯定是个把C# 当 C/C++ 来教的家伙。。。
现在还有多少人会用 Dos Prompt 来跑 application 啊?? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 6-6-2009 03:09 PM
|
显示全部楼层
就是啊,他们说只能用 console application 来写
老师也是只会讲不会做,有时候还问回我们
做么example 的 program 走不到  |
|
|
|
|
|
|
|
|
|
|
发表于 6-6-2009 06:53 PM
|
显示全部楼层
我的天啊。。。真同情你。那些老师求学时学的是console application,结果他们一辈子都只知道console application,根本不知道如何写Windows Form Application,就这样一辈子不知道进步,也不会去学新的东西。。。真是一群不知所谓误人子弟的废物啊啊啊啊!!!!
好了,发完牢骚,基于同情你的原因,我只好代你的废物老师教你如何在21世纪写console application 吧。教得不好别怪我,因为这始终不是我的责任。
首先分析你的情况:你要让你的程式能够辨别两种情况:
1)用户输入带有“-”号的身份证号码,这表示你期待的输入有14个字符(12个数字+2个"-"号)
2)用户输入纯数字的输入,这表示你期待的时12个数字。
根据以上的分析,
1)你的输入处理程式最大只能接受14个字符,超过14个就是不符合要求。
2)你的输入处理程式最少要求输入12个字符,少过这个数目就不符合要求。
3)在14个字符的输入情形下,你的第7和第10个字符必须是“-”号。
4)在第3项里面,除了第7和第10字符,其他的字符都必须在0~9之间。
5)在12个字符的情形下,所有的输入必须是介于0~9之间。- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- char[] input = new char[14];
- char ch;
- int index=0, maxLength = 12;
-
- Console.Clear();
- Console.WriteLine("Please Input Something:\n");
- do
- {
- ch = Console.ReadKey(true).KeyChar;
- if (ch >= '0' && ch <= '9') //it is a digit
- {
- input[index] = ch;
- index++;
- Console.Write(ch);
- }
- else //not a digit
- {
- if (index == 6 || index == 9)
- {
- if (ch == '-')
- {
- maxLength = 14;
- input[index] = ch;
- index++;
- Console.Write(ch);
- }
- else
- {
- Console.Beep();
- }
- }
- else //invalid input
- {
- Console.Beep();
- }
- }
- }while(index < maxLength);
- Console.WriteLine("\n\nPress any key to continue.");
- Console.ReadKey();
- }
- }
- }
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 6-6-2009 08:04 PM
|
显示全部楼层
谢谢你的教学
我研究研究一下 |
|
|
|
|
|
|
|
|
|
|
发表于 6-6-2009 10:47 PM
|
显示全部楼层
原帖由 geekman 于 6-6-2009 02:41 PM 发表 呃,什么年代了还在写console application?学校的功课?那些吃饱等死的老师真的是害人不浅啊,都2009年了,还拿1980年的东西来教学生??肯定是个把C# 当 C/C++ 来教的家伙。。。现在还有多少人会用 Dos Prompt ...
不赞同你那么说,console application 毕竟是最基本的,并不是所有application 都是windows,很多unix application 都是console, 而且现在windows application 的 IDE 都是drag n drop,学生未必真正了解coding... 纯粹个人看法。。。如不赞同请ignore |
|
|
|
|
|
|
|
|
|
|
发表于 7-6-2009 01:51 AM
|
显示全部楼层
|
最簡單就是用regular expression。 |
|
|
|
|
|
|
|
|
|
|
发表于 25-6-2009 12:29 AM
|
显示全部楼层
回复 10# geekman 的帖子
|
别看不起CONSOLE PROGRAM, 最佳用来做DEBUG 和教学. GIANT 的POS 不是CLIPPER 的CONSOLE APPLICATION 吗. 就算WINFORM APPLICATION, 你真的能理解它怎样操作吗????懂少少就别发表...别误人子弟... |
|
|
|
|
|
|
|
|
|
|
发表于 25-6-2009 10:46 AM
|
显示全部楼层
回复 16# mokth 的帖子
我没看不起Console program,别随便给我扣罪名,同时请仔细的看我写的帖子,以及增加你的理解能力,我看不起的只是那些不求上进,不能够进步的废物讲师。我已经做了7年的Programmer,当然懂winform application。你对我的能力懂多少?你才是懂少少乱发表。
看来你也是那种只懂得Console application的废物讲师的一分子。 |
|
|
|
|
|
|
|
|
|
|
发表于 26-6-2009 10:30 AM
|
显示全部楼层
回复 17# geekman 的帖子
|
我没看不起你那做了7 年还是Programmer的能力, 只不过不爽你用废物来型容那曾经教过你 |
|
|
|
|
|
|
|
|
|
|
发表于 26-6-2009 11:07 AM
|
显示全部楼层
原帖由 geekman 于 25-6-2009 10:46 AM 发表 
我没看不起Console program,别随便给我扣罪名,同时请仔细的看我写的帖子,以及增加你的理解能力,我看不起的只是那些不求上进,不能够进步的废物讲师。我已经做了7年的Programmer,当然懂winform application。你对 ...
这位先生很偾世哦。。。。。
偷偷和你说,我做java的,用eclipse来写coding,写完后是用DOS PROMT来setenv和compile然后再run tomcat的哦,这样我是不是很落后?哈哈。。。
以前我做vb.net的时候,很多时候也没有在property调东西咧,也是用coding控制的。。。哈哈。。。所以你要骂我咯?
还有hor,你写到酱长来控制ic的输入阿?其实用regular expression就好了。。hehe |
|
|
|
|
|
|
|
|
|
|
发表于 26-6-2009 11:11 AM
|
显示全部楼层
哦。。。原来你在写console application阿?haha........
不好意思,没有看清楚。。。我以为你再button click写这么多来控制。。。哈哈
sorry sorry...
it's my bad |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|