刚刚学会读取txt文件到richtextBox。代码如下:private void button1_Click(object sender, EventArgs e)
{
   System.IO.StreamReader st;
   st = new System.IO.StreamReader(@"C:\Program Files\text.txt", System.Text.Encoding.Default);
   this.richTextBox1.Text = st.ReadToEnd();
}
程序的目的是将txt的内容以语音形式朗读出来,现在已经实现了将richTextBox1的内容朗读出来。但是客户那边说txt文件的内容是不断增加的(可以理解成服务器每五秒钟往txt文件里写入一次)。
这样的话我就需要用一个Timer每五秒钟读取一次txt(自己想的思路,不知道是否可行)。我的目标是—>每次只读取txt新增的内容到richtextBox(目的是要朗读出新内容,不可能每次Timer都要从头开始读一遍)问题就在于如何读取到txt的新增内容,定位txt读取位置?还是别的什么方法。
希望高手指点下给个思路,本人初学,最好能给点代码!!
感激不尽!!!

解决方案 »

  1.   

    总结一下问题:
    txt文件内容不断增加  程序需要定时读取txt文件内容  怎样能读到txt新增的内容
    也就是上次读出来的就不要读的 只读后来增加的
      

  2.   

    个人感觉定位txt读取位置比较容易实现,读取的时候获取最后数组的位置,不知道你是不是用数组存放内容的,然后下次读取相同文件的时候判断下以前读取过没有,读取过,就从最后开始,自己加点控制很容易实现的
      

  3.   

    上一次的TEXT内容存下来,下一次新增以后,用replace把上一次的内容替换成空,剩下的就是新内容了。不过这样有个前提,就是内容只在文件末尾新增,如果是中间无规律插入的话就要另想办法了。
      

  4.   

    上班第一天,挣个满分:
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                fs = File.Open("d:\\a.txt", FileMode.Open, FileAccess.ReadFileShare.ReadWrite);
                sr = new StreamReader(fs);
            }
            
            FileStream fs; 
            StreamReader sr; 
            private void button1_Click(object sender, EventArgs e)
            {            MessageBox.Show(sr.ReadToEnd());//每次读的都是新增内容
            }
        }
    新的一年,希望楼主马上结贴
      

  5.   

    按楼主的说的来看,应该文件都是在末尾增加的,那么可以采用上面说的replace方法,或者也可以定位在上一次读取的结束位置,接着读。