以下数据来源于ll.INI文件,我想把红色部分替换成"D:\配件格式(车).xls"然后在写入到该ll.INI文件里面去, 
[Connection] 
JKDBName=jk_data 
ServerName=WWW-12E7BEEA209 
ServerPort=1433 
ServerUser=sa 
ServerPassWord= 
UserName=Admin 
FwkpDEFAULT=C:\Program Files\航天信息\防伪开票\DATABASE\DEFAULT\WORK 
FwkpARG=C:\Program Files\航天信息\防伪开票\DATABASE\DEFAULT\ARG 
RegFileText=C:\Program Files\航天信息\防伪开票\BIN 
FwkpSysInfo=C:\Program Files\航天信息\防伪开票\DATABASE\SYSTEM\INFO 
FwkpSuit=C:\Program Files\航天信息\防伪开票\DATABASE\SYSTEM\SUIT 
IsSaleGroupUsed=0 
[SendToFwkp] 
RemakBillCode=1 
[Other] 
CompanyName=广州科税测试企业1号 
TaxCode=449900000440101 
MachineNo=0 
BankName= 
BankCode=工行123455668-234222256111                                              
Address=北京市海淀区知春路61号 
Phone=68744498 
PricePecision=8 
QtyPecision=8 
CombineMethod=2 
CombinePriceD=8 
CombineSCD=3 
CombineAMA=1 
DefaultBillMan=张嘉炜 
DefaultCheckMan=曾海珊 
DefaultPayee=许小峰 
DefaultInvoiceMaxAmt=100000000 
DisableSend8Items=0 
SaleGroup=LWW 
ImportFilesDir=C:\Documents and Settings\Administrator\桌面
下面是我写的代码:
StreamReader sr_der = new StreamReader(@"D:\\ll.INI", System.Text.Encoding.Default);
while (sr_der.Peek()!=-1)
 {
   s_tring = sr_der.ReadLine();
   name_serven+= s_tring+Environment.NewLine;//传文本数据给私有变量    
     s_groupby =s_tring.Split(Convert.ToChar(fuhao));
   if (s_groupby[0].Equals("ImportFilesDir"))//接收参数判断路径同样值 true:数据替换调
        {
         name_serven+=s_groupby[0]+"="+"D:\配件格式(车).xls"+Environment.NewLine;
        }
}
sr_der.Close();
StreamWriter s_er = new StreamWriter(path,false, System.Text.Encoding.GetEncoding("GB2312"));
s_er.Write(name_serven);
 s_er.Close();
结果:写到ll.INI文件去了,但原来的还保留着.这怎么回事?
[Connection]
JKDBName=jk_data
ServerName=WWW-12E7BEEA209
ServerPort=1433
ServerUser=sa
ServerPassWord=
UserName=Admin
FwkpDEFAULT=C:\Program Files\航天信息\防伪开票\DATABASE\DEFAULT\WORK
FwkpARG=C:\Program Files\航天信息\防伪开票\DATABASE\DEFAULT\ARG
RegFileText=C:\Program Files\航天信息\防伪开票\BIN
FwkpSysInfo=C:\Program Files\航天信息\防伪开票\DATABASE\SYSTEM\INFO
FwkpSuit=C:\Program Files\航天信息\防伪开票\DATABASE\SYSTEM\SUIT
IsSaleGroupUsed=0
[SendToFwkp]
RemakBillCode=1
[Other]
CompanyName=广州科税测试企业1号
TaxCode=449900000440101
MachineNo=0
BankName=
BankCode=工行123455668-234222256111                                                
Address=北京市海淀区知春路61号
Phone=68744498
PricePecision=8
QtyPecision=8
CombineMethod=2
CombinePriceD=8
CombineSCD=3
CombineAMA=1
DefaultBillMan=张嘉炜
DefaultCheckMan=曾海珊
DefaultPayee=许小峰
DefaultInvoiceMaxAmt=100000000
DisableSend8Items=0
SaleGroup=LWW
ImportFilesDir=C:\Documents and Settings\Administrator\桌面
ImportFilesDir=D:\配件格式(车).xls

解决方案 »

  1.   

     //写INI文件  [ DllImport ( "kernel32" ) ]  private static extern bool WritePrivateProfileString ( string section ,string key , string val , string filePath ) ;   //读ini文件(字符  [ DllImport ( "kernel32" ) ]   private static extern int GetPrivateProfileString ( string section ,string key , string def , StringBuilder retVal ,int size , string filePath ) ;     //读ini文件(数字  [ DllImport ( "kernel32" ) ]  private static extern int GetPrivateProfileInt ( string section ,string key , int def , string filePath ) ;    //////////////////////////////////////////////////////////////  using System;   using System.IO;   using System.Runtime.InteropServices;   using System.Text;    namespace EchonComponentLibrary  {  ///   /// IniFile 的摘要说明。  ///   public class IniFile  {   private string FFileName;     [DllImport("kernel32")]   private static extern int GetPrivateProfileInt(   string lpAppName,   string lpKeyName,   int nDefault,   string lpFileName   );   [DllImport("kernel32")]   private static extern int GetPrivateProfileString(   string lpAppName,   string lpKeyName,   string lpDefault,   StringBuilder lpReturnedString,   int nSize,   string lpFileName   );   [DllImport("kernel32")]   private static extern bool WritePrivateProfileString(   string lpAppName,   string lpKeyName,   string lpString,   string lpFileName   );     public IniFile(string filename)   {   FFileName = filename;   }   public int ReadInt(string section,string key,int def)   {   return GetPrivateProfileInt(section,key,def,FFileName);   }   public string ReadString(string section,string key,string def)   {   StringBuilder temp = new StringBuilder(1024);   GetPrivateProfileString(section,key,def,temp,1024,FFileName);   return temp.ToString();   }   public void WriteInt(string section,string key,int iVal)   {   WritePrivateProfileString(section,key,iVal.ToString(),FFileName);   }   public void WriteString(string section,string key,string strVal)   {   WritePrivateProfileString(section,key,strVal,FFileName);   }   public void DelKey(string section,string key)   {   WritePrivateProfileString(section,key,null,FFileName);   }   public void DelSection(string section)   {   WritePrivateProfileString(section,null,null,FFileName);   }     }   }