我要读一个txt文件,在页面显示txt文件的内容,txt文件中有4千多条记录,在页面,我只显示前50条记录,当我点击下一页的时候,再从第51条记录读起(读50条),这个怎么实现啊????

解决方案 »

  1.   

    全部读取出来,放在DataTable或者直接跳行显示
      

  2.   

     string[] _FileLineText = File.ReadAllLines(@"C:\1.txt", Encoding.Default);
    对 _FileLineText 分页就好处理了.
      

  3.   

    在查询语句上分页啊
    sql语句每次按照主键查询啊
      

  4.   

    不好意识
    我忘记你是读取txt文本了。
    那个我也不知道。
      

  5.   

    我第一想到的也是 全部读取出来,放在DataTable 中。关注
      

  6.   

    使用OleDb读取txt文件到一DataTable中去, 然后处理分页, 好像在CodeProject有看到过相关解析Text文本的库
      

  7.   


    汗·····CodeProject全是英文啊,我英文好差的哦,,,你这个是一次性读完整个txt文件吗?要是我的txt文件有800MB,或是1G怎么办???也一次读完吗?那这样很慢的哦?
      

  8.   

    文件有800MB,或是1G 必须分割文件
      

  9.   

    随手写来。仅供参考。long lCurrPos = 0;
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                string Str = "abc.txt";
                FileStream FS = new FileStream(Str, FileMode.Open);
                FS.Position = lCurrPos;
                byte[] bdata = new byte[1024];
                int iResult = FS.Read(bdata, 0, bdata.Length - 1);
                //如果是汉字文档,此处易出现乱码
                if (bdata[iResult - 1] > 127)
                {
                    iResult = iResult + FS.Read(bdata, bdata.Length - 1, 1);
                }
                lCurrPos = FS.Position;
                FS.Close();
                FS = null;
                Str = Encoding.Default.GetString(bdata, 0, iResult);
                Array.Clear(bdata, 0, bdata.Length);
                textBox1.Text = Str;
            }
      

  10.   

    行的长度不确定..怎么获取每行的开始位置... 你使用OLEDB连接TXT看看把..效果不一定好。
      

  11.   

    对啊 txt的长度是不定的很难去规定它的
      

  12.   

    那如果我的txt文件的内容是固定不变的?怎么实现这个功能?要是能实现在我指定的位置读取就好了····
      

  13.   


    这个是可以的 FileStream.Read 就可以了..
      

  14.   

    我的方法怎么不可以呢?
    long lCurrPos = 0;
    不就是记录分页的位置的的吗?