我的项目要替换文本文件Employee.txt的内容,计划从文本文件里用StreamWriter对象读出所有内容,保存为string source,并将之前读出的要修改字符串保存为string oldstr,将要更新的字符串保存为string newstr,然后用source = source.Replace(oldstr,newstr);更新,最后再以StreamWriter对象读回文本文件。
  现在问题是:我保存的要修改字符串oldstr在读出的source中找不到,用int n = source.IndexOf(oldstr);结果返回-1.
  文本文件的内容是:               
                    职员编号:1
                    姓名:2
                    部门:3
                    工资:4
                    职员编号:a
                    姓名:s
                    部门:d
                    工资:f
oldstr的内容是:
oldstr = "职员编号:" + txtnum.Text + "\r\n" + "姓名:" + txtname.Text + "\r\n" + "部门:"
                + txtclass.Text + "\r\n" + "工资:" + txtmoney.Text + "\r\n";
我用对话框弹出的oldstr内容是:
                    职员编号:1
                    姓名:2
                    部门:3
                    工资:4
看起来一样,但int n = source.IndexOf(oldstr);一直返回-1.
求助我该怎么办...

解决方案 »

  1.   

    重新试了一遍,用source   =   source.Replace(oldstr,newstr);后source已经更新成功了,内容符合要求,但
    int   n   =   source.IndexOf(oldstr);还是返回-1,不知道怎么回事。
    继续求助...
      

  2.   

    从文本文件里读出所有内容,保存为string   source,采用如下方法:System.IO.StreamReader textSR = new System.IO.StreamReader("你机子里的Employee.txt文件的保存路径", System.Text.Encoding.Default);
                string source = textSR.ReadToEnd();然后试试。。
      

  3.   

    你读文本内容应该用:StreamReader 吧。如果是多行的话,应该巡环取或者一次性全取出来,但按你的要求巡环取然后写入会好点
      

  4.   

    换行符不一定是\r\n~~~~查看一下StreamReader读出的字符串是什么~~~~~