需求:

有一个专业表,没有插入数据,读取的excel,复制为txt文件

每行读取

并且 将汉字的一转换为数字1


private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)
{ StreamReader sr = new StreamReader(@"C:\Users\忧郁的小学生\Desktop\xss.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('\t');
if (ParseCnToInt(strs[0]) > 0)
{
dels += "\r\n";
dels += "end;";
dels += "\r\n";
i = (int)ParseCnToInt(strs[0]);
dels += i.ToString()+":";
dels += "\r\n";
dels += "begin";
dels += "\r\n";
}
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 += "\r\n";
} } 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;
}
}

c# 创建delphi的代码的更多相关文章

  1. C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例

    Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. ...

  2. QT中静态库的生成与使用——创建共享库代码,附例子

    一. 静态库的生成    1. 测试目录: lib    2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为&qu ...

  3. delphi 动态绑定代码都某个控件

    delphi 动态绑定代码都某个控件 http://docwiki.embarcadero.com/CodeExamples/Berlin/en/Rtti.TRttiType_(Delphi)Butt ...

  4. DIOCP组件(Delphi IOCP)代码阅读之ADO内存表

    DIOCP组件(Delphi IOCP)代码阅读之ADO内存表 代码中有 class procedure TADOTools.loadFromStream(pvDataSet: TCustomADOD ...

  5. Visual Studio使用技巧,创建自己的代码片段

    1.代码片段的使用示例 在编写代码中常会使用代码片段来提高我们的编写代码的效率,如:在Visual Studio中编写一个 for(int i = 0; i < length;i++) { } ...

  6. 用 cctld工具创建带有国家代码的IP地址表

    用 cctld工具创建带有国家代码的IP地址表 cctld tools is creating IP addresses table with Country Code 项目地址 https://gi ...

  7. 在VS2017中创建C++的代码块模板

    在VS2017中创建C++的代码块模板 有任何问题,请留言!!! 在VS2017中有工具–>代码片段管理器,方便我们使用固有的代码块模板,同时我们也可以自定义模板. 在VS2017中代码片段的模 ...

  8. Delphi 复习代码

    1.取得可文件路径 Path := ExtractFilePath(Application.ExeName); //取得可执行文件路径 TXMLDocument.Create(ExtractFileP ...

  9. 奖学金评分系统(系统分析与设计版与Delphi实现代码)

    一.系统规划 1.1 项目背景介绍 在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段.对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化. ...

随机推荐

  1. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 树上启发式合并(DSU ON TREE)

    题目描述 一棵根为\(1\) 的树,每条边上有一个字符(\(a-v\)共\(22\)种). 一条简单路径被称为\(Dokhtar-kosh\)当且仅当路径上的字符经过重新排序后可以变成一个回文串. 求 ...

  2. ansible-playbook通过github拉取部署Lnmp环境

    1. 配置服务器初始化  1.1) 关闭防火墙和selinux 1 [root@test-1 ~]# /bin/systemctl stop firewalld 2 [root@test-1 ~]# ...

  3. mysql linux 命令行操作

    1. 登录mysql      mysql -u 用户名 -p    回车输入密码 

  4. Docker学习:(一)初识Docker

    Docker(容器虚拟化技术)要点(秒级启动) Docker的WWH公式学习 What[是什么]. Why[为什么要用它]. How[怎么用] 1.Docker简介 (1)问题:为什么会有docker ...

  5. GDB将所有线程堆栈输出到文件

    在调试多线程程序时,经常需要查看线程堆栈信息,如果线程数目过多,每次查看一个线程堆栈,繁琐耗时.下面介绍一种一次性将所有线程堆栈输出到文件的方法. 首先,将gdb attach到调试线程 gdb -p ...

  6. 一文看懂Vue3.0的优化

    1.源码优化: a.使用monorepo来管理源码 Vue.js 2.x 的源码托管在 src 目录,然后依据功能拆分出了 compiler(模板编译的相关代码).core(与平台无关的通用运行时代码 ...

  7. python实现elasticsearch操作-CRUD API

    python操作elasticsearch常用API 目录 目录 python操作elasticsearch常用API1.基础2.常见增删改操作创建更新删除3.查询操作查询拓展类实现es的CRUD操作 ...

  8. [wxpusher]分享一个服务器推送消息到微信上的小工具,可以用于微信推送提醒和告警。

    背景 作为一个程序员,业余搞点自己的东西很正常,一般程序员都会有一两台自己的服务器,谁叫今天xx云搞活动,明天yy云搞活动呢. 自家的服务器用来跑爬虫,跑博客,或者跑一些个人业务,但当服务有新状态,抢 ...

  9. php 注册器模式 工厂模式

    <?php /** * 注册器模式 * 全局共享和交换对象 */ class Register { public static $objects; // 定义全局数组 // 保存对象到全局数组 ...

  10. 如何快速在vscode配置C/C++环境

    目录 1.卸载重装vscode 2.下载vscode 3.下载MinGW 4.配置环境变量 5.配置c/c++环境 6.超完整的配置文件 7.常用扩展推荐 8.注意 9.后记 相信许多刚开始使用vsc ...