生成二维码并显示 Visual Studio 右击项目名 Manage NuGet Packages... 搜索Spire.Barcode并安装。当前版本是v3.5.0,VS用的是VS Community 2017 Version 15.9.12 // Program.cs中Main函数内添加如下代码,生成QR C
生成二维码并显示
Visual Studio > 右击项目名 > Manage NuGet Packages... > 搜索Spire.Barcode并安装。当前版本是v3.5.0,VS用的是VS Community 2017 Version 15.9.12
// Program.cs中Main函数内添加如下代码,生成QR Code using Spire.Barcode; using System.Drawing; static void Main(string[] args) { //创建BarcodeSettings对象 BarcodeSettings settings = new BarcodeSettings(); //设置条码类型为二维码 settings.Type = BarCodeType.QRCode; //设置二维码数据 settings.Data = "123456789"; //设置显示文本 settings.Data2D = "123456789"; //设置数据类型为数字 settings.QRCodeDataMode = QRCodeDataMode.Numeric; //设置二维码错误修正级别 settings.QRCodeECL = QRCodeECL.H; //设置宽度 settings.X = 3.0f; //实例化BarCodeGenerator类的对象 BarCodeGenerator generator = new BarCodeGenerator(settings); //生成二维码图片并保存为PNG格式 Image image = generator.GenerateImage(); image.Save("QRCode.png"); // not mandatory } // Form1.cs,将生成的image参数传递给Form以便显示出来 public Form1(Image image) // add args image { InitializeComponent(image); // parse image to form } // Form1.Designer.cs,添加pictureBox用于显示二维码 using System.Drawing; // add name space if report error private void InitializeComponent(Image image) // parse image this.pictureBox1.Image = image; // show QRCode this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; // AutoSize根据图片的大小自动扩展pictureBox
C#操作字符串
string.Format("https://www.baidu.com/s?wd={0}_{1}", width, height) str=str.Replace("abc","ABC"); // 如果字符串中有"abc"则替换成"ABC" string str="123abc456"; int i=3; str=str.Substring(0,i); // or str=str.Remove(i,str.Length-i); 取字符串的前i个字符 str=str.Remove(0,i); // or str=str.Substring(i); 去掉字符串的前i个字符 str=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i); 从右边开始取i个字符 str=str.Substring(0,str.Length-i); // or str=str.Remove(str.Length-i,i); 从右边开始去掉i个字符 //判断字符串中是否有"abc" 有则去掉之 using System.Text.RegularExpressions; string str = "123abc456"; string a="abc"; Regex r = new Regex(a); Match m = r.Match(str); if (m.Success) { //绿色部分与紫色部分取一种即可。 str=str.Replace(a,""); Response.Write(str); string str1,str2; str1=str.Substring(0,m.Index); str2=str.Substring(m.Index+a.Length,str.Length-a.Length-m.Index); Response.Write(str1+str2); }
C#中的File类用法
File.Exists(@"路径"); //判断文件是否存在,返回一个bool值 File.Move(@"",@""); //剪切 File.Copy(Symblink + @"\EFI\Boot\shel.efi", Symblink + @"\EFI\Boot\bootx64.efi", true); //复制 File.Delete(@"",@""); //彻底删除 File.ReadAllLines(@""); //读取一个文本文件,返回一个字符串数组 string[] str = File.ReadAllLines(@"C:\Users\Administrator\Destop\aa.txt",Encoding.Default); // Encoding.Default使用系统默认编码 for(int i = 0; i < str.Length; i++) { Console.WriteLine(str[i]); } File.ReadAllText(@"");//读取一个文本文件,返回一个字符串 string str = File.ReadAllText(@"C:\Users\Administrator\Destop\aa.txt",Encoding.UTF8);//Encoding.UTF8使用UTF8编码 File.ReadAllBytes(@"");//读取一个文件,返回字节数组 byte[] bt = File.ReadAllBytes(@"C:\Users\Administrator\Destop\aa.txt"); //将byte数组解码成我们认识的字符串 for(int i = 0; i < bt.Length; i++) { Console.WriteLine(byte[i].ToString()); } File.WriteAllLines(@"");//将一串字符串数组写入到一个文本文件,会覆盖源文件。 File.WriteAllText(@"");//将一串字符串写入到一个文本文件中,会覆盖源文件。 File.WriteAllBytes(@"");//将一个字节数组写入到一个文本文件中,会覆盖源文件。 File.AddAllText(@"");//将一个字符串写入到一个文本文件中,不会覆盖源文件。 File.AddAllLines(@"");//……,不覆盖源文件。 File.AddAllBytes(@"");//……,不覆盖源文件。 //将一个任意类型的文件复制到其他位置 byte[] bt = File.ReadAllBytes(@"C:\Users\Administrator\Destop\aa.avi"); File.WriteAllBytes(@"D:\new.avi",bt); File只能操作小文件,操作大文件速度极慢
C#读写改XML
public static void WriteLogPathToDebugInfo() { string debugxml = Path.GetFullPath("../../") + @"Log\DebugInfo.xml"; // C:\Program Files (x86)\AutoRI\Log\DebugInfo.xml if (!File.Exists(debugxml)) // XML不存在,创建 { Console.WriteLine(string.Format("Not find {0}, create it", debugxml)); XmlDocument xmlDoc = new XmlDocument(); // 创建XmlDocument对象 XmlDeclaration xmlSM = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null); // XML的声明 xmlDoc.AppendChild(xmlSM); // 追加xmldecl位置 XmlElement xml = xmlDoc.CreateElement("", "debuginfo", ""); // 添加一个名为debuginfo的根节点 xmlDoc.AppendChild(xml); // 追加debuginfo的根节点位置 XmlNode gen = xmlDoc.SelectSingleNode("debuginfo"); // 添加另一个节点,与debuginfo所匹配,查找 XmlElement zi = xmlDoc.CreateElement("name"); //添加一个名为的节点 zi.SetAttribute("type", "BurnIn Test"); //节点的属性 XmlElement x1 = xmlDoc.CreateElement("logpath"); x1.InnerText = Path.GetFullPath("../../") + @"Log\BurnInTest.log"; //InnerText:获取或设置节点及其所有子节点的串连值 zi.AppendChild(x1); //添加到节点中 gen.AppendChild(zi);//添加到节点中 xmlDoc.Save(debugxml);//"debuginfo.xml"); } else // XML已经存在,如查找到则修改并置flag { bool findnode = false; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(debugxml); XmlNodeList nodeList = xmlDoc.SelectSingleNode("debuginfo").ChildNodes;//获取Employees节点的所有子节点 foreach (XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型 if (xe.GetAttribute("type") == "BurnIn Test")//如果type属性值为“BurnIn Test” { //xe.SetAttribute("type", "3D Mark11_M");//则修改该属性为“update张三” XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach (XmlNode xn1 in nls)//遍历 { XmlElement xe2 = (XmlElement)xn1;//转换类型 if (xe2.Name == "logpath")//如果找到 { xe2.InnerText = Path.GetFullPath("../../") + @"Log\BurnInTest.log";//则修改 Console.WriteLine("Find " + debugxml + @" and BurnIn Test node, write its logpath to C:\BurnIn_Logs\BIT.log"); findnode = true; } } } } if (findnode == false) // 找不到此Node,添加 { Console.WriteLine("Find " + debugxml + " But NOT find BurnIn Test node, create it and append logpath"); XmlNode root = xmlDoc.SelectSingleNode("debuginfo"); // 查找 XmlElement xe1 = xmlDoc.CreateElement("name"); // 创建一个节点 xe1.SetAttribute("type", "BurnIn Test"); // 设置该节点genre属性 XmlElement xesub1 = xmlDoc.CreateElement("logpath"); xesub1.InnerText = Path.GetFullPath("../../") + @"Log\BurnInTest.log"; // 设置文本节点 xe1.AppendChild(xesub1); // 添加到节点中 root.AppendChild(xe1); // 添加到节点中 } xmlDoc.Save(debugxml); // 保存。 } }
C#获取ini文件中全部Section,获取Section下全部Key
using System.Runtime.InteropServices; [DllImport("kernel32", EntryPoint = "GetPrivateProfileString")] private static extern uint GetPrivateProfileStringA(string section, string key, string def, Byte[] retVal, int size, string filePath); static void Main(string[] args) { string[] sections = ReadSections(@"C:\Users\yinguo.li.LCFC\Desktop\aa\aa\bin\Debug\Modules.ini").ToArray(); string[] keys = ReadKeys("Thermal_TAT", @"C:\Users\yinguo.li.LCFC\Desktop\aa\aa\bin\Debug\Modules.ini").ToArray(); foreach (string section in sections) Console.WriteLine(section); foreach (string key in keys) Console.WriteLine(key); } public static List ReadSections(string iniFilename) { List result = new List(); Byte[] buf = new Byte[65536]; uint len = GetPrivateProfileStringA(null, null, null, buf, buf.Length, iniFilename); int j = 0; for (int i = 0; i < len; i++) if (buf[i] == 0) { result.Add(Encoding.Default.GetString(buf, j, i - j)); j = i + 1; } return result; } public static List ReadKeys(string SectionName, string iniFilename) { List result = new List(); Byte[] buf = new Byte[65536]; uint len = GetPrivateProfileStringA(SectionName, null, null, buf, buf.Length, iniFilename); int j = 0; for (int i = 0; i < len; i++) if (buf[i] == 0) { result.Add(Encoding.Default.GetString(buf, j, i - j)); j = i + 1; } return result; }
C#增删数组
string[] DiskArray = Output.Split('\n'); List list = DiskArray.ToList(); List NewList = new List(); NewList.Add(line); DiskArray = NewList.ToArray();