以前用BCB 喜欢把参数保存在INI 文件,
用EVC喜欢保存在注册表,
现在学用C#, 听说可以保存在程序本身,不明白.....?请问什么原理?谢谢!

解决方案 »

  1.   

    以前用TXT文件,经常出问题,大侠可否给点原码.让小弟学习!谢谢!
      

  2.   

    txt文件怎么可能错嘛,调试好就不会错了啊。
    很容易吧,比如你写文件的时候可以这样:
    参数1[值]参数2[值]参数3[值]参数4[值]....
    读取的时候就这样:
    一次性都读过来,然后写个正则
    参数1\[(?<参数1>[^\]]+?)参数2\[(?<参数2>[^\]]+?).....
    然后根据对应的组获取数据即可,例如:
    IntParameter1 = int.Parse(result.Group["参数1"].Value);
      

  3.   

    写个例子给你,在界面上,放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);
                    }
                }
            }
      

  4.   

    //注册表读写通过Registrykey实现
    using Microsoft.Win32;RegistryKey vRegistryKey = Registry.CurrentUser.OpenSubKey(
        @".DEFAULT", true);
    vRegistryKey.SetValue("Note", "Zswang 路过");MessageBox.Show(vRegistryKey.GetValue("Note").ToString());
      

  5.   

    保存在程序本身? 可以,保存在资源文件里,然后把资源文件嵌入dll中.
      

  6.   

    INI 文件已过时,使用注册表会影响程序可移植性另外可能受注册表安全机制限制
    建议使用 .NET 配置文件如 app.config、web.config,System.Configuration 命名空间包含提供用于处理配置数据的编程模型的类型,可查看 MSDN 相关章节
      

  7.   

    看了半天HELP还是不明白, system.config..的用法,请贴是代码!谢谢!
      

  8.   

    喜欢保存在 .config 文件里面
      
      

  9.   

    cangwu_lee大哥:请贴个例子!谢谢!
      

  10.   

    在.exe.config文件里应该有appSettings一段,加上你的参数:
    <appSettings>
       <add key="MyParam" value="Hello, World" />
    </appSettings>程序里这样读:
    ConfigurationSettings.AppSettings["MyParam"];这种方法的问题是参数只能读,程序里不能修改。如果需要修改的话可以用Xml文件,比text文件要可靠一些。---------------------------------------------------------------
    http://pointlessly.blogspot.com
      

  11.   

    使用xml的方法:
    http://www.w3sky.com/147.html
      

  12.   

    //写
    string strXml = Environment.CurrentDirectory + "\\config.xml";
                XmlTextWriter xtw = new XmlTextWriter( strXml , null );
                xtw.WriteStartElement("AppSetting");
                xtw.WriteElementString("TestValue1", textBox1.Text);
                xtw.WriteEndElement();
                xtw.Flush();
                xtw.Close();//读
    string strXml = Environment.CurrentDirectory + "\\config.xml";
                if (!System.IO.File.Exists(strXml))
                {
                    this.Text = "File not found!";
                    return;
                }
                XmlTextReader xtr = new XmlTextReader(strXml);
                xtr.ReadStartElement("AppSetting");
                textBox1.Text =  xtr.ReadElementString("TestValue1");
                xtr.ReadEndElement();
                xtr.Close();xml的节点是随便可以添加的。