zoukankan      html  css  js  c++  java
  • c# 创建delphi的代码

    需求:

    有一个专业表,没有插入数据,读取的excel,复制为txt文件
    每行读取
    并且 将汉字的一转换为数字1

    
     private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)
            {
               
    
             
                StreamReader sr = new StreamReader(@"C:Users忧郁的小学生Desktopxss.txt", Encoding.GetEncoding("utf-8"));  //path为文件路径
                String line;
                string s = "";
                int i = 0;
                int ts = 0;
                string dels ="";
                while ((line = sr.ReadLine()) != null)//按行读取 line为每行的数据
                {
                    string[] strs = line.Split('	');
                    if (ParseCnToInt(strs[0]) > 0)
                    {
                        dels += "
    ";
                        dels += "end;";
                        dels += "
    ";
                        i = (int)ParseCnToInt(strs[0]);
                        dels += i.ToString()+":";
                        dels += "
    ";
                        dels += "begin";
                        dels += "
    ";
                    }
                    else {
                        string xs = "";
                        ts = Convert.ToInt32(strs[0]);
                        if (i < 10)
                        {
                             xs = "0" + i.ToString();
                        }
                        else {
    
                             xs = i.ToString();
                        }
    
                        if (ts < 10)
                        {
    
                            xs += "0" + ts.ToString();
                        }
                        else {
                            xs +=  ts.ToString();
                        }
                       
                        dels += "form1.ComboBox3.Items.Add('" + xs + "-" + strs[1] + "');";
                        dels += "
    ";
                    }
                    
                }
    
                string dt = dels;
    
    
    
    
    
    
            }
    
            /// <summary>
            /// 将中文数字转换阿拉伯数字 网上找的
            /// </summary>
            /// <param name="cnum">汉字数字</param>
            /// <returns>长整型阿拉伯数字</returns>
            public static long ParseCnToInt(string cnum)
            {
                cnum = Regex.Replace(cnum, "\s+", "");
                long firstUnit = 1;//一级单位                
                long secondUnit = 1;//二级单位 
                long tmpUnit = 1;//临时单位变量
                long result = 0;//结果
                for (int i = cnum.Length - 1; i > -1; --i)//从低到高位依次处理
                {
                    tmpUnit = CharToUnit(cnum[i]);//取出此位对应的单位
                    if (tmpUnit > firstUnit)//判断此位是数字还是单位
                    {
                        firstUnit = tmpUnit;//是的话就赋值,以备下次循环使用
                        secondUnit = 1;
                        if (i == 0)//处理如果是"十","十一"这样的开头的
                        {
                            result += firstUnit * secondUnit;
                        }
                        continue;//结束本次循环
                    }
                    else if (tmpUnit > secondUnit)
                    {
                        secondUnit = tmpUnit;
                        continue;
                    }
                    result += firstUnit * secondUnit * CharToNumber(cnum[i]);//如果是数字,则和单位想乘然后存到结果里
                }
                return result;
            }
    
            /// <summary>
            /// 转换数字
            /// </summary>
            protected static long CharToNumber(char c)
            {
                switch (c)
                {
                    case '一': return 1;
                    case '二': return 2;
                    case '三': return 3;
                    case '四': return 4;
                    case '五': return 5;
                    case '六': return 6;
                    case '七': return 7;
                    case '八': return 8;
                    case '九': return 9;
                    case '零': return 0;
                    default: return -1;
                }
            }
    
            /// <summary>
            /// 转换单位
            /// </summary>
            protected static long CharToUnit(char c)
            {
                switch (c)
                {
                    case '十': return 10;
                    case '百': return 100;
                    case '千': return 1000;
                    case '万': return 10000;
                    case '亿': return 100000000;
                    default: return 1;
                }
            }
    
  • 相关阅读:
    jq select 一些操作
    jq控制select值为某个时选中
    php loop循环 拿到键名
    php输出textarea数据(入库没有处理的)
    div下面多个a标签的点击事件,并且获取a的属性
    微信支付签名错误(第四点试过已得)
    微擎系统二维码关注回调(后台生成的二维码,可用于生成下线)
    微擎系统生成可以扫描关注的二维码,在后台二维码管理哪里有生成流程
    关于ContentProvider(二)
    关于ContentProvider(初识篇)
  • 原文地址:https://www.cnblogs.com/mengluo/p/11892954.html
Copyright © 2011-2022 走看看