数据如下:
1 aewqq
2 awwww
4 zzzzz
3 zzzz
6 aaa
7 qqq
5 12wq
.........
以上都是数据,省略是很多数据不知道多少条?问题就是我输入一个4 就把对应的 第3行"4 zzzzz"替换成"4 aaasdasd",请用C#代码实现,最好别理论,谢谢了!

解决方案 »

  1.   

    // 执行的按扭
    private void button1_Click(object sender, System.EventArgs e)
    {
            int iRow = 0 ;//数据的行数
    iRow = Convert.ToInt32(this.textBox1.Text);//textBox1是 窗体 里输入的行数文本框
    string strValue =  "aaasdasd";//aaasdasd是要替换的内容也可以定义
    string strReslut = "";//替换完的文本内容
    strReslut = GetSubString(iRow,strValue);
    //再 把 strReslut 写回到刚才的文件中去 

    }
    /// <summary>
    /// 修改完的文本串 
    /// </summary>
    /// <param name="iRow">数据的行数</param>
    /// <param name="strValue">要替换的内容</param>
    /// <returns>返回修改完的文本串</returns>
    private string  GetSubString(int iRow,string strValue)
    {
    string strsql= "f:\\1.txt";//文件的位置
    StreamReader sReader = new StreamReader(strsql,System.Text.Encoding.GetEncoding("gb2312"));
    string aStatement = "";
    int  iRowCount = 0 ;
    try
    {
    string strLine = sReader.ReadLine();
    while(strLine != null)
    {
    iRowCount ++ ;
    if(iRowCount==iRow)       
    {
        aStatement = aStatement +  strValue; 
    }
    else
    {
    aStatement = aStatement + strLine;  
    }                      
    strLine = sReader.ReadLine();
    }
    sReader.Close();  
    }
    catch(Exception ex)
    {

    }
    return aStatement ;
    }
      

  2.   

    1楼的代码存在一点点问题,那就是他文本里面的行号不是实际的行号,而是不按顺序的,你可以看看他的文本里面的行号顺序是1,2,4,3,6,7,5,所以需要把每一行的文本读取出来,然后用空格拆分,将拆分后的前半段转换成数字型行号(iRowCount)去做对比