当前位置: 首页 > 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://wiki.neutronadmin.com/news/163773/

相关文章:

  • 在线画图软件seo推广排名重要吗
  • 建站服务论坛wordpress免费中文完整版主题下载
  • wordpress采集建站如何塑造和推广网络品牌
  • 哪个大学的网站做的最好看武义县住房和城乡建设局网站
  • 什么网站可以做实验室莱芜二手房产网
  • 品牌服装网站建设现状佛山建设小学官方网站
  • 网站icp备案申请和龙市建设局网站
  • 买书的网站排名找公司建网站
  • 谁会在西安做网站的吗wordpress写文章美化
  • 天津网站建设电话咨询房产中介网站开发模板
  • 西安百度竞价代运营泰州百度seo公司
  • 小程序建站哪家好vps新建的网站打不开
  • wordpress花园网站有关网站开发的论文
  • 山西省建设厅网站首页6wordpress调用固定链接结构
  • 荣成市城乡建设局网站网站内链如何做优化
  • 静安建设网站网站设计云匠网
  • 西安 房产网站建设学校网站建设合同
  • 沧州哪里可以做网站做易买网网站项目心得体会
  • 快递网站推广怎么做网站开发新手什么软件好
  • 有关做美食的网站乐代做网页制作网站
  • 北京网站建设联系兴田德润中国建筑设计网站
  • 制作手机网站工具软件项目交易平台
  • 中国设计网站排行榜前十名建设苏州旅游网站的方案策划书
  • 柳城网站网站建设课程的感受
  • 网站盈利了做网站的哪家好
  • 建站公司怎么备案北京sem网站
  • 胖咯科技 网站建设大学网站模板html
  • 360网站收录提交设计坞
  • 团购网站开发需要多久唐山网站建设400多少钱
  • 深圳做网站优化报价什么推广平台好