
C#
文章平均质量分 50
flysh05
这个作者很懒,什么都没留下…
展开
-
XML的优缺点
使用XML文件的优缺点原创 2022-07-22 21:27:41 · 2283 阅读 · 0 评论 -
C# 使用Spire库实现xlsx和xml格式相互转换
官方帮助文档: https://www.e-iceblue.cn/spirexls/spire-xls-for-net-program-guide-content.htmlSpire.XLS for .NET 是一款专业的 .NET Excel 组件, 它可以用在各种 .NET 框架中,包括 ASP.NET 和 Windows Forms 等相关的 .NET 应用程序。Spire.XLS for .NET 提供了一个对象模型 Excel API,使开发人员可以快速地在 .NET 平台上完成对 Ex原创 2022-04-15 15:33:46 · 859 阅读 · 0 评论 -
Http Get Post 区别
在HTTP1.0中,定义了三种请求方法:GET, POST 和 HEAD方法。在HTTP1.1中,新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT方法 但我们常用的一般就是GET和POST请求。GET和POTS的区别:(1) GET请求在URL中传送的参数是有长度限制的,而POST没有。(2) GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。而POST数据不会显示在URL中。是放在Request body中。(3) 对参数的数据类原创 2022-03-29 21:37:56 · 154 阅读 · 0 评论 -
C# WPF异步更新UI元素
常见的问题"调用线程无法访问此对象,因为另一个线程拥有该对象。" 常见错误测试代码如下: private void UpdateWrongMethod() { try { Thread.Sleep(100原创 2022-03-28 22:13:46 · 1820 阅读 · 0 评论 -
C# 测试左移
左移一位相等乘2,左移两位相当于乘以4,依次类推。右移一位相当于除以2,右移两位相当于除以4,依次类推。测试代码如下: static void Main(string[] args) { //8,16,32 uint lines = 0;原创 2022-03-27 22:13:32 · 948 阅读 · 0 评论 -
C#中的时间比较方法
因为是使用C#创建的上位机软件,所以读取测试时间也是转换为C#的时间对象,需求是对测试时间对象比较,判断时间点的先后,比如经历了3个测试,必须按照T1,T2,T3, 查询到这3个测试状态,还需要判断这个3个测试时间是否有先后的顺序。测试代码如下: class Program { static void Main(string[] args) {原创 2022-03-26 19:28:06 · 7613 阅读 · 0 评论 -
C# 正则表达式识别重复单词
意外地重复单词是编写者常犯的错误。 可以使用正则表达式标识重复的单词,如以下测试示例所示。 static void Main(string[] args){ string pattern = @"\b(\w+?)\s\1\b"; string input = "This this is a nice day. What about原创 2022-03-25 21:36:14 · 1389 阅读 · 0 评论 -
C# 正则替换 Regex.Replace
假设一个邮件列表包含一些姓名,这些姓名有时包括称谓(Mr.、Mrs.、Miss 或 Ms.)以及姓氏和名字。如果你从列表中生成信封标签时不希望包括称谓,则可以使用正则表达式移除称谓,如以下示例所示。首先添加引用:using System.Text.RegularExpressions;测试代码如下: class Program { static void Main(string[] args) &原创 2022-03-24 21:57:27 · 5315 阅读 · 0 评论 -
C# 使用Hash算法加密输入密码
前2篇文章也提到加密的问题,也可以使用Hash算法来计算输入的密码字符串,这样就的字符串就几乎不可能破解了。实现的方式将输入字符串转换为字节数组,再计算字节数组的哈希值,存储Hash值。实现函数如下: /// <summary>/// Generate hashed string/// </summary>/// <param name="dataString">String for hashing</param>/// <returns&原创 2022-03-23 21:34:34 · 2432 阅读 · 0 评论 -
C# 解密加密的字符串
昨天演示将输入密码字符串加密后存储到数据库或者启动配置文件中,但是使用这些加密后的字符串,也不能直接使用的,需要翻译为加密前的字符串。下面就演示了如何解密加密的过的的字符串。封装的解密函数: private static string descrable(string inpassword) { StringBuilder passCode = new Str原创 2022-03-22 21:31:39 · 1955 阅读 · 0 评论 -
C# 实现WPF App最小化托盘测试
xmlns:winForm ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.ComponentModel;using Drawing = System.Drawin原创 2022-02-26 21:13:29 · 1448 阅读 · 0 评论 -
C# 十进制与十六进制互相转换
下面的代码和演示都使是基于前2篇文章的代码上添加的。这个十进制和十六进制之前的相互转换是很简单的,但是在串口数据传输,或者上下位机之间数据传输中很常见的。例如:十六进制的字符串A6 转换为十进制就是 166.十进制的12 转换为十六进制就是 0C,这个格式是自己定义的X2 就是显示2为0C, X4则显示 000C。实现功能函数如下: #region 十六进制字符串转十进制 pr原创 2022-02-25 22:35:58 · 6175 阅读 · 0 评论 -
C# 正则取值
在十六进制字符串中使用正则表达式取值,使用正则表达式能起到事半功倍的效果。在十六进制的字符串中,16为停止位,18为CheckSum, 0F352A 为Funcode,00 为数据。实现的功能函数如下: /// <summary> /// 从返回的十六进制中取值 /// </summary>原创 2022-02-24 21:38:29 · 696 阅读 · 0 评论 -
C# 代码实现校验和计算
在上位机中,经常需要判断下位机(如单片机模块)返回的指令是否正确,这就存在一个校验的过程,来检查模块发过来的数据和上位机接收的数据是一样,常用校验和来检查,也即是方式模块,将发送的数据计算一个和值,和值放在数据的末尾,随数据一起发送,接收数据的上位机将接收到的数据也做和值计算,检查双方计算的和值是否一样,来判断收发数据是否正确。指令发送基本是十六进制的字符串。如下图:文本框为接收到的指令字符串,16代表停止位,18是校验和,也即是CheckSum.如果校验和大于255(FF),位数超过2位的话,原创 2022-02-23 22:15:16 · 3244 阅读 · 0 评论 -
C# 实现xls类型转换为xlsx类型
Office97-2003 创建的Excel文件后缀为xls, Office 2007 之后的版本创建的Excel文件后缀为 xlsx,在C#中使用EPPLUS模块读取2003版本创建的Excel存在一些问题,但是2007版本后创建的Excel不存在问题,所以需要将xls 版本转换为xlsx版本再操作,就不存在问题。例如:存在一个 Sample.xls 文件转换代码如下: private原创 2022-02-21 20:05:01 · 2768 阅读 · 0 评论 -
面向对象的基本概念
面向对象一种编程思想。面向对象 = 对象(object)+ 类(Classification)+继承(inheritance)+消息通信(Communication with messages)1. 类类是对象的抽象化(类是对象的模板),对象是类的具体化,也可称作类的实例(instance)2. 对象对象是基本运行时的实体,既包括数据(属性),也包括作用于数据的操作(行为)。一个对象把属性和行为封装成为一个整体。封装是一种信息隐藏技术,目的是使对象的使用者和生成者分离,使对象的定义和实现分离。从程序设计者的原创 2022-02-19 22:12:01 · 841 阅读 · 0 评论 -
NSI打包脚本加入文件详细信息
当脚本中没有指定文件版本,文件名称,文件说明时,创建的安装包文件不包含这些信息的,都是空白的,如下图:选中NIS打包后的安装包文件,右键,选择属性:脚本如下:VIProductVersion "${PRODUCT_VERSION}"VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${PRODUCT_NAME}"VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "${PRODUCT_WEB_S原创 2022-02-15 21:30:17 · 761 阅读 · 0 评论 -
C# SelfHost WebAPI (2)
上一个自主托管Web Api 的示例存储一些问题,如下Self Host Web Api 测试OK。1. 创建 ConsoleApp定义项目名称: SefHostWebApiSample2. 添加第三方组件Microsoft.AspNet.WebApi.SelfHostMicrosoft.Net.HttpNewtonsoft.Json3. 创建Controller 类 ,ValuesController.csusing System;using System.Colle原创 2022-02-14 22:14:17 · 770 阅读 · 0 评论 -
C# 创建self host WebService
C# 创建字托管的Web服务。1. 创建一个项目,本来使用ConsoleApp来自托管一个WebService。输入项目名称 ConsoleApp_SelfHost, 解决方案名称:SelfHostWebServiceTest2. 创建数据模型类, DataModel.cs public class DataModel { public int Id { get; set; } &原创 2022-02-13 22:28:31 · 1458 阅读 · 0 评论 -
SQL Join,Left Join,Right Join用法
2022.02.11 21:41:19字数 472阅读 0编辑文章SQL Join 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。INNER JOIN:如果表中有至少一个匹配,则返回行LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行FULL JOIN:只要其中一个表中存在匹配,则返回行语法SELECT column_name(s)FROM table1INNER JOIN table2ON table1.column_原创 2022-02-11 21:43:08 · 952 阅读 · 0 评论 -
C# UdpClient类实现UDP通信测试
实现的效果如下截图:创建2个UDP 客户端,直接可以直接信息进行交互。主要使用UdpClient类来实现。XAML 设计: <Grid> <DockPanel LastChildFill="True"> <DockPanel DockPanel.Dock="Bottom" Margin="10">  原创 2022-02-09 21:55:35 · 1718 阅读 · 0 评论 -
数据的表示以及进制转换
2022.02.07 21:21:26字数 286阅读 0编辑文章常见的进制有 二进制,八进制,十进制,十六进制。二进制很容易转换为八进制或十六进制。二进制转八进制:每三位二进制直接转换位一位八进制,当二进制的个数不是三的倍数时,前面(左边)补零。例如:1 0011 =010 011 对应八进制数据:23二进制转十六进制:每四位二进制直接转换位一位十六进制,当二进制的个数不是四的倍数时,前面(左边)补零。例如:1 0011 对应八进制数据:13二进制转十进制:直接按权展开相加。1 0011 =1原创 2022-02-07 21:23:00 · 560 阅读 · 0 评论 -
Notepad++ 安装XML Tools插件格式化XML文件
Notepad++ 安装XML Tools插件格式化XML文件Ritchie_Li2022.02.06 20:37:12字数 183阅读 0编辑文章1. 打开Notepad++ 软件2. 选择插件,选择“插件管理”3. 搜索 XML Tools,找到该插件后,勾选该文件,点击“安装”在Notepad++ 中安装,如果没有成功,可以在多尝试2次,我是第3次成功的,具体原因不知,但有的电脑一次就能安装成功的。4. 安装的进入如下:5.成功之后,插件栏显示6. 格式化XML文件, 单击 "原创 2022-02-06 20:40:01 · 8067 阅读 · 1 评论 -
C# 文本框定位到文本末尾
使用ScrollToEnd()方法将文本光标滚动文本末尾。创建一个简单的WPF App测试该功能。XMAL代码如下: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <Colu原创 2022-02-03 21:56:36 · 1238 阅读 · 0 评论 -
NSIS 安装打包安装程序
NSIS 安装打包安装程序Ritchie_Li2022.01.31 19:53:28字数 136阅读 0编辑文章下载NSIS软件安装。下载地址:https://nsis.sourceforge.io/Download下载成功后,安装该文件。安装成功:先介绍一种简单的基于压缩包的打包方式。所有的执行文件和依赖项都在一个压缩包。选择压缩包文件填写安装路径后,Generate。打包成功:安装包创建成功,可以安装测试:安装:安装成功:即可将安装文件打包成e原创 2022-01-31 19:55:43 · 1065 阅读 · 0 评论 -
C# 创建barcode 并打印
使用BarcodeLib库创建barcode是很容易的,实现打印页很容易。界面如下:第一文本框是生成条码的内容,这个依据自己的实际需要。Width是定义条码的宽度,Height是定义条码的高度,接下来的2个文本宽是定义打印时一行放置几个Label,打印多少行。首先添加barcodeLib库:代码创建方式如下,仅以Code128为例: BarcodeLib.Barcode barcode = new Barcode();&n原创 2022-01-30 22:30:44 · 1796 阅读 · 0 评论 -
C# 获取星期几
在做一个自动分析软件,但是需要把周末排除出去,也就是星期六和星期日不参与分析的。这个也就需要获取当前是星期几?如果是周末,就不执行分析处理。代码如下: class Program { static void Main(string[] args) { var wk = DateTime.N原创 2022-01-29 21:00:38 · 2960 阅读 · 0 评论 -
WPF使用时间选择控件
在WPF种使用WinForm中的时间控件 DatePicker首先添加程序集的引用:System.Winows.FormsWindowsFormsIntegration在XAML中添加引用 xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=Wind原创 2022-01-28 21:33:34 · 3663 阅读 · 1 评论 -
C# 获取数据库服务器时间
有的电脑在使用过程中,时间会变得不正确,要么快了,要么慢了,为避免时间错误,可以参考服务器时间,核对本机时间,如果时间相差不过10秒就任务本机时间时正确的。具体实现代码如下,创建静态类MyServer.cs //获取数据库中的当前时间 public static class MyServer { static string connectString = "Data Source原创 2022-01-27 20:49:50 · 3297 阅读 · 0 评论 -
SQL 查询数据列合并连接问题
有时需要将查询到的2类数据合并到一列显示,遇到这样情况很容易实现。使用Concat( ) 函数即可。例如:需要将TestPointDataID和TestPointName显示在同一列select * from TestPointList where TestTypeID=100587使用Concat( )函数查询实现合并到一列中:select concat( TestPointName , TestPointDataID) as Tp from TestPointList where T原创 2022-01-26 19:41:50 · 3515 阅读 · 0 评论 -
C# 软件自动重启
实现软件关闭后自动重启该软件。例如,软件做了一些配置信息的设置后,关闭该软件,软件自动重启。主要是Process类来实现。创建ConsoleApp来实现,测试代码如下:using System.Diagnostics;using System.Threading; class Program { static void Main(string[] args) {原创 2022-01-25 20:52:17 · 3108 阅读 · 0 评论 -
WPF 使用async await 执行异步操作
演示如何使用async 和await 关键字实现异步操作,不阻塞UI。在UI创建一个Button事件和一个Label实现信息的呈现。XAML码如下: <StackPanel> <Button x:Name="btnProcessFile" Margin="5" C原创 2022-01-24 20:53:44 · 3802 阅读 · 1 评论 -
WPF异步更新UI
在UI定义一个TextBox和一个Button 测试异步函数更新UI。<TextBox x:Name="txtSN" Margin="2" VerticalAlignment="Center"></TextBox> <Button x:Name="btnUpdateSn" Margin="2" VerticalAlignment="Center" Click="btnUpdateSn_Click">UpdateSN</Button>定义一个异步函数:原创 2022-01-21 21:27:28 · 1373 阅读 · 0 评论 -
WPF 使用RichTextBox
在WPF中使用 RichTextBox显示信息,可以使用不同的颜色标注不同类型的信息,如,一般信息用黑色,错误用红色,成功用绿色。诸如次类的需求。核心功能函数:传入显示的信息和对应的前景色。 //使用RichBox显示不同的文本信息 internal async Task AddMessage(string msg, Brush brush)&n原创 2022-01-20 20:23:58 · 3459 阅读 · 0 评论 -
WPF 创建DataGrid 样式
先展示一下样式效果,如下:UI XAML代码如下:<Window x:Class="wpf_DataGird_Test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&原创 2022-01-19 22:15:37 · 684 阅读 · 0 评论 -
VS2019创建Barcode预览打印
演示使用第三方组件BarcodeLib创建条形码,将条码加载到RDLC 报告中预览打印。添加组件的引用:添加ReprotingService组件,如下:创建UI界面如下:效果如下:后台代码:using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Windows.Forms;using BarcodeLib;创建Code128 条码如下: private vo原创 2022-01-18 20:53:19 · 598 阅读 · 0 评论 -
WPF 导出DataGrid内容到CV文件
上一篇讲到了如何将DataGrid数据导出到csv 文件,这一章将如何将DataGrid中的数据导出到Excel文件中。导出的Excel文件如下:实现代码如下:创建类 ExportToExcel.csusing Microsoft.Office;using System.Windows.Controls; public class ExportToExcel { public bool Export原创 2022-01-17 20:47:04 · 357 阅读 · 0 评论 -
WPF 导出DataGrid内容到CV文件
1. 创建一个DataGrid创建4列不同类型的列,Text,ComboBox, CheckBox,Hyperlink,基本覆盖了DataGrid的所有列类型。 <DataGrid x:Name="dg" Grid.Column="2" Margin="5" AutoGenerateColumns="False" SelectionUnit="Cell"原创 2022-01-16 21:03:42 · 537 阅读 · 0 评论 -
Python识别条码内容
Python识别条码内容Ritchie_Li2022.01.15 21:59:44字数 125阅读 0编辑文章上篇文件测试了如下创建二维码,可将二维码发送给打印机,也可存储为图片文件。如下测试读取条码图片文件的内容。先安装pyzbarpip install pyzbar测试完整代码如下:import pyzbar.pyzbarbarImage = cv2.imread("test.png")gray = cv2.cvtColor(barImage, cv2.COLOR_BGR2RGB)text = pyzb原创 2022-01-15 22:03:40 · 690 阅读 · 0 评论 -
C# 创建Barcode
网上查询了一些组件,有些是试用版限制了很多功能,需要花钱购买版权,对于穷程序员来说,只能使用免费开源的软件了。所以选择了Zxing.net库。gitHub: https://github.com/micjahn/ZXing.Net使用开源的软件就是爽, 可以定制化,可以遵循开源协议,自己扩展功能。创建一个C# 项目,添加zxing.net的引用。下面就简单演示如下创建一个QR Code ,效果如下:添加引用:using ZXing;using ZXing.Common;using ZX原创 2022-01-14 23:09:46 · 556 阅读 · 0 评论