首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 数字类文本如何自动按格式转换

2012-08-24 
c# 数字类文本怎么自动按格式转换一个文本框textbox一个提交按钮button向数据库写入6位数字为一组的文本间

c# 数字类文本怎么自动按格式转换
一个文本框 textbox 
一个提交按钮 button  

向数据库写入6位数字为一组的文本 间隔符号 .或; 都是英文半角状态下的输入字符

现在需要实现文本自动按格式转换

譬如 252863 253864 257888 268888.。。。。。。。。
都是6位数字为一组的文本 有时只要 252863 一组即可 有时252863 253864 257888 三组也行 手工输入也还行
但有时要输入 252863-252899之间连续共37组数字 手工输入不现实 只能252863-99 这样快捷输入 但进数据库时 还必须是37组独立的数字文本 而且有时 是连续几段 这样的数字组 怎么实现 他们在数据库里面 不论怎么输入 都是6个数字一组的数字文本? 间隔符是.或;

[解决办法]
我不太明白楼主什么意思
[解决办法]
用SPLIT(‘。’)函数可以试一下
[解决办法]
描述不清晰,未能了然。
[解决办法]
按我对楼主意思的理解,不知道下面的思路行不行呢?

检查数据格式,按不同的格式给予不同的处理
(1)单纯的数字格式:就直接传入DB
(2)数字间,有“间隔符号 .或;”的,就按间隔符号拆分后传入DB
(3)出现 - 的,先获取 - 后面数字的位数,假如是 252863-99,先获取 - 后面数字的长度,为2,然后获取 - 前数字的 前 4(总长度-后面数字的长度,即 6-2=4) 个数字。然后,使用一个循环,从 原数字的后2位,一直加到后数字的大小,即从 63~99.前4码使用原数字,后两码循环组出。然后将其传入DB
[解决办法]

C# code
var str = "252863 253864;257888 268888.252863-99";var list = new List<int>();var arr = str.Split(new char[] { ' ', '.', ';' }, StringSplitOptions.RemoveEmptyEntries);foreach (var item in arr){    if (item.Length > 6)    {        var m = int.Parse(item.Substring(0, 4) + item.Substring(7, 2));        for (int i = int.Parse(item.Substring(0, 6)); i <= m; i++)        {            list.Add(i);        }    }    else    {        list.Add(int.Parse(item));    }} 

热点排行