程序的可变参数保存的方法(Reg or  INI)
以前用BCB   喜欢把参数保存在INI   文件, 
 用EVC喜欢保存在注册表, 
 现在学用C#,   听说可以保存在程序本身,不明白.....?   
 请问什么原理?谢谢!
------解决方案--------------------不知道有这个方法。。。 
 个人见解,最好不使用注册表。使用文件方式比较好。软件的全局参数放一个文件,项目参数一个文件。这样重启设备也不会丢失参数。
------解决方案--------------------txt文件怎么可能错嘛,调试好就不会错了啊。 
 很容易吧,比如你写文件的时候可以这样: 
 参数1[值]参数2[值]参数3[值]参数4[值].... 
 读取的时候就这样: 
 一次性都读过来,然后写个正则 
 参数1\[(? <参数1> [^\]]+?)参数2\[(? <参数2> [^\]]+?)..... 
 然后根据对应的组获取数据即可,例如: 
 IntParameter1 = int.Parse(result.Group[ "参数1 "].Value);
------解决方案--------------------写个例子给你,在界面上,放2个按钮,btnWrite,btnRead,放一个文本框,默认名字即可。事件响应函数如下: 
 //写配置文件 
 private void btnWrite_Click(object sender, EventArgs e) 
         { 
             int iMyVariable = 0; 
             if (int.TryParse(textBox1.Text, out iMyVariable)) 
             { 
                 System.IO.FileInfo fiSettingFile = new System.IO.FileInfo(@ "c:\MySetting.txt ");                   
                 System.IO.StreamWriter sw =  fiSettingFile.CreateText(); 
                 string strSetting = string.Format( "TextValue1[{0:d}]TextValue2[{1:d}] ", 
                     iMyVariable, iMyVariable + 5); 
                 sw.Write(strSetting); 
                 sw.Flush(); 
                 sw.Close(); 
                 MessageBox.Show( "Save setting done! "); 
             } 
         }   
 //读配置文件 
 private void btnRead_Click(object sender, EventArgs e) 
         { 
             System.IO.FileInfo fiSettingFile = new System.IO.FileInfo(@ "c:\MySetting.txt "); 
             if (!fiSettingFile.Exists || 0 == fiSettingFile.Length) 
             { 
                 MessageBox.Show( "Setting file missing.Use default setting now. "); 
                 textBox1.Text =  "0 "; 
                 return; 
             }   
             System.IO.StreamReader sr = fiSettingFile.OpenText(); 
             string strSetging = sr.ReadToEnd(); 
             System.Text.RegularExpressions.Match result = 
                 System.Text.RegularExpressions.Regex.Match(strSetging, 
                 @ "TextValue1\[(? <value1> [^]]+?)\]TextValue2\[(? <value2> [^]]+?)\] "); 
             if (result.Success) 
             { 
                 textBox1.Text = result.Groups[ "value1 "].Value;//update view control 
                 string strTest = result.Groups[ "value2 "].Value; 
                 int iMyVariable = 0; 
                 if (int.TryParse(result.Groups[ "value1 "].Value, out iMyVariable)) 
                 { 
                     string strTest2 = string.Format( "value1:{0:d}\r\nvalue2:{1:s} ", 
                         iMyVariable,strTest); 
                     MessageBox.Show( "get data successful!\r\nThese are :\r\n " + strTest2); 
                 } 
             } 
         }
------解决方案--------------------//注册表读写通过Registrykey实现 
 using Microsoft.Win32;   
 RegistryKey vRegistryKey = Registry.CurrentUser.OpenSubKey( 
     @ ".DEFAULT ", true); 
 vRegistryKey.SetValue( "Note ",  "Zswang 路过 ");   
 MessageBox.Show(vRegistryKey.GetValue( "Note ").ToString()); 
------解决方案--------------------保存在程序本身? 可以,保存在资源文件里,然后把资源文件嵌入dll中.
------解决方案--------------------