当前位置: 首页 > news >正文

电子信箱注册网站91号卡分销平台

电子信箱注册网站,91号卡分销平台,静态网页制作技术,临平网站建设虽然微软早已经建议在WINDOWS中用注册表代替INI文件#xff0c;但是在实际应用中#xff0c;INI文件仍然有用武之地#xff0c;尤其现在绿色软件的流行#xff0c;越来越多的程序将自己的一些配置信息保存到了INI文件中。 INI文件是文本文件,由若干节(section)组成,在每个带…       虽然微软早已经建议在WINDOWS中用注册表代替INI文件但是在实际应用中INI文件仍然有用武之地尤其现在绿色软件的流行越来越多的程序将自己的一些配置信息保存到了INI文件中。        INI文件是文本文件,由若干节(section)组成,在每个带括号的标题下面,是若干个关键词(key)及其对应的值(Value) [Section] KeyValue        VC中提供了API函数进行INI文件的读写操作但是微软推出的C#编程语言中却没有相应的方法下面是一个C# ini文件读写类从网上收集的很全就是没有对section的改名功能高手可以增加一个。 1 using System;2 using System.IO;3 using System.Runtime.InteropServices;4 using System.Text;5 using System.Collections;6 using System.Collections.Specialized;7  8 namespace wuyisky9 {10     /// summary11     /// IniFiles的类12     /// /summary13     public class IniFiles14     {15         public string FileName; //INI文件名16         //声明读写INI文件的API函数17         [DllImport(kernel32)]18         private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath);19         [DllImport(kernel32)]20         private static extern int GetPrivateProfileString(string section, string key, string def, byte[] retVal, int size, string filePath);21         //类的构造函数传递INI文件名22         public IniFiles(string AFileName)23         {24             // 判断文件是否存在25             FileInfo fileInfo new FileInfo(AFileName);26             //Todo:搞清枚举的用法27             if ((!fileInfo.Exists))28             { //|| (FileAttributes.Directory in fileInfo.Attributes))29                 //文件不存在建立文件30                 System.IO.StreamWriter sw new System.IO.StreamWriter(AFileName, false, System.Text.Encoding.Default);31                 try32                 {33                     sw.Write(#表格配置档案);34                     sw.Close();35                 }36                 catch37                 {38                     throw (new ApplicationException(Ini文件不存在));39                 }40             }41             //必须是完全路径不能是相对路径42             FileName fileInfo.FullName;43         }44         //写INI文件45         public void WriteString(string Section, string Ident, string Value)46         {47             if (!WritePrivateProfileString(Section, Ident, Value, FileName))48             {49                 throw (new ApplicationException(写Ini文件出错));50             }51         }52         //读取INI文件指定53         public string ReadString(string Section, string Ident, string Default)54         {55             Byte[] Buffer new Byte[65535];56             int bufLen GetPrivateProfileString(Section, Ident, Default, Buffer, Buffer.GetUpperBound(0), FileName);57             //必须设定0系统默认的代码页的编码方式否则无法支持中文58             string s Encoding.GetEncoding(0).GetString(Buffer);59             s s.Substring(0, bufLen);60             return s.Trim();61         }62  63         //读整数64         public int ReadInteger(string Section, string Ident, int Default)65         {66             string intStr ReadString(Section, Ident, Convert.ToString(Default));67             try68             {69                 return Convert.ToInt32(intStr);70             }71             catch (Exception ex)72             {73                 Console.WriteLine(ex.Message);74                 return Default;75             }76         }77  78         //写整数79         public void WriteInteger(string Section, string Ident, int Value)80         {81             WriteString(Section, Ident, Value.ToString());82         }83  84         //读布尔85         public bool ReadBool(string Section, string Ident, bool Default)86         {87             try88             {89                 return Convert.ToBoolean(ReadString(Section, Ident, Convert.ToString(Default)));90             }91             catch (Exception ex)92             {93                 Console.WriteLine(ex.Message);94                 return Default;95             }96         }97  98         //写Bool99         public void WriteBool(string Section, string Ident, bool Value) 100         { 101             WriteString(Section, Ident, Convert.ToString(Value)); 102         } 103   104         //从Ini文件中将指定的Section名称中的所有Ident添加到列表中 105         public void ReadSection(string Section, StringCollection Idents) 106         { 107             Byte[] Buffer new Byte[16384]; 108             //Idents.Clear(); 109   110             int bufLen GetPrivateProfileString(Section, null, null, Buffer, Buffer.GetUpperBound(0), 111                   FileName); 112             //对Section进行解析 113             GetStringsFromBuffer(Buffer, bufLen, Idents); 114         } 115   116         private void GetStringsFromBuffer(Byte[] Buffer, int bufLen, StringCollection Strings) 117         { 118             Strings.Clear(); 119             if (bufLen ! 0) 120             { 121                 int start 0; 122                 for (int i 0; i bufLen; i) 123                 { 124                     if ((Buffer[i] 0) ((i - start) 0)) 125                     { 126                         String s Encoding.GetEncoding(0).GetString(Buffer, start, i - start); 127                         Strings.Add(s); 128                         start i 1; 129                     } 130                 } 131             } 132         } 133         //从Ini文件中读取所有的Sections的名称 134         public void ReadSections(StringCollection SectionList) 135         { 136             //Note:必须得用Bytes来实现StringBuilder只能取到第一个Section 137             byte[] Buffer new byte[65535]; 138             int bufLen 0; 139             bufLen GetPrivateProfileString(null, null, null, Buffer, 140              Buffer.GetUpperBound(0), FileName); 141             GetStringsFromBuffer(Buffer, bufLen, SectionList); 142         } 143         //读取指定的Section的所有Value到列表中 144         public void ReadSectionValues(string Section, NameValueCollection Values) 145         { 146             StringCollection KeyList new StringCollection(); 147             ReadSection(Section, KeyList); 148             Values.Clear(); 149             foreach (string key in KeyList) 150             { 151                 Values.Add(key, ReadString(Section, key, )); 152             } 153         } 154         ////读取指定的Section的所有Value到列表中 155         //public void ReadSectionValues(string Section, NameValueCollection Values,char splitString) 156         //{  string sectionValue; 157         //  string[] sectionValueSplit; 158         //  StringCollection KeyList new StringCollection(); 159         //  ReadSection(Section, KeyList); 160         //  Values.Clear(); 161         //  foreach (string key in KeyList) 162         //  { 163         //    sectionValueReadString(Section, key, ); 164         //    sectionValueSplitsectionValue.Split(splitString); 165         //    Values.Add(key, sectionValueSplit[0].ToString(),sectionValueSplit[1].ToString()); 166   167         //  } 168         //} 169         //清除某个Section 170         public void EraseSection(string Section) 171         { 172             if (!WritePrivateProfileString(Section, null, null, FileName)) 173             { 174                 throw (new ApplicationException(无法清除Ini文件中的Section)); 175             } 176         } 177         //删除某个Section下的键 178         public void DeleteKey(string Section, string Ident) 179         { 180             WritePrivateProfileString(Section, Ident, null, FileName); 181         } 182         //Note:对于Win9X来说需要实现UpdateFile方法将缓冲中的数据写入文件 183         //在Win NT, 2000和XP上都是直接写文件没有缓冲所以无须实现UpdateFile 184         //执行完对Ini文件的修改之后应该调用本方法更新缓冲区。 185         public void UpdateFile() 186         { 187             WritePrivateProfileString(null, null, null, FileName); 188         } 189   190         //检查某个Section下的某个键值是否存在 191         public bool ValueExists(string Section, string Ident) 192         { 193             StringCollection Idents new StringCollection(); 194             ReadSection(Section, Idents); 195             return Idents.IndexOf(Ident) -1; 196         } 197   198         //确保资源的释放 199         ~IniFiles() 200         { 201             UpdateFile(); 202         } 203     } 204 } View Code   文章来源http://www.cnblogs.com/nozer/articles/1934958.html  转载于:https://www.cnblogs.com/qiernonstop/p/4250619.html
http://www.yutouwan.com/news/163773/

相关文章:

  • 政务信息公开与网站建设报告新华路网站建设
  • 网站的排名和什么因素有关系时间线 wordpress
  • flash网站制作公司网站已经克隆好了 怎么做仿站
  • 网站模板 酒店 中文wordpress删除数据库数据表
  • 贵阳营销型网站建设小程序注册量
  • vs2010网站开发示例自己做视频网站怎么让加载速度变快
  • 查看网站速度400平别墅装修费用
  • 生物网站模板毕业设计答辩网站开发原理
  • 网站没有备案用什么cdn如何自己设计广告图
  • 交换链接适合哪些网站网站营销 优势
  • 张家港企业网站建设网站建设开发费用预算
  • 网站制作公司广州wordpress文章内容乱码
  • 黄埔网站开发公司wordpress 编辑器字号
  • 做网站怎么找客户联系方式天猫淘宝旗舰店
  • 响应式网站和自适应网站子域名网址大全
  • 浙江省建设厅网站在哪里企业网站建设的缺点
  • 动易网站模版的制作辽宁建设信息网站
  • ui界面设计app德阳网站优化
  • 在哪个网站申请建设资质管理者应具备的能力
  • 培训网站开发云南seo简单整站优化
  • 惠州网站建设咨询企业的网站内容
  • 通河县机场建设网站wordpress 木马
  • 改网站描述wordpress文章图片显示不出来
  • 宁德网站建设51yunsou网站维护需要用到哪些知识
  • 赤峰网站建设哪家好企业网站模板 讲湖南岚鸿
  • 如何做网站平台关注游戏网站建设多少
  • 一站式的手机网站制作wordpress 标签分类
  • 荥阳企业网站建设关于药品网站建设策划书
  • 网站搭建好了不用会不会被攻击产品介绍彩页模板
  • 旅游网站官网自己建的网站也要注册域名吗