你用streamreader读取文件,定义个读取行数,根据读取行数用streamwrite来写出文章 private int pagecount=0; private int pagenumber=200; while(sr.read()) { sw.writeline(sr.readline()); }
假设你的长文章是存在数据库中的SQL分页算法http://www.knowsky.com/339541.html 全英文的,相比国内的技术帖,还做了性能测试的分析。http://www.codeproject.com/aspnet/PagingLarge.asp分页有两种SQL语句的写法,但性能不同。分别是:SELECT TOP 10 * FROM TAlarmTag where TagId not in (SELECT TOP 810 TagId FROM TAlarmTag order by TagId asc) order by TagId asc SELECT Top 10 * FROM TAlarmTag WHERE TagId > (SELECT MAX(TagId) FROM (SELECT TOP 810 TagId FROM TAlarmTag ORDER BY TagId asc) AS TEMP) order by TagId 以上两种写法得到的结果都是一样的,但后一种写法的性能更好,速度是前一种的2倍。(各运行1000次,并取平均值,再比较) 测试代码:long[] runtime = new long[1000]; for (int i = 0; i < 1000; i++) { using (SqlConnection connection = new SqlConnection(this.connectionStrings)) { connection.Open(); SqlCommand command = connection.CreateCommand(); command.CommandText = textBox1.Text; Stopwatch sw = new Stopwatch(); sw.Start(); SqlDataReader reader = command.ExecuteReader(); object o; while (reader.Read()) { o = reader[0]; } sw.Stop(); runtime[i] = sw.Elapsed.Ticks; } } long average = runtime[0]; foreach (long one in runtime) { average = (one + average) / 2; } label1.Text = Convert.ToString(average);
private int pagecount=0;
private int pagenumber=200;
while(sr.read())
{
sw.writeline(sr.readline());
}
全英文的,相比国内的技术帖,还做了性能测试的分析。http://www.codeproject.com/aspnet/PagingLarge.asp分页有两种SQL语句的写法,但性能不同。分别是:SELECT TOP 10 * FROM TAlarmTag where TagId not in (SELECT TOP 810 TagId FROM TAlarmTag order by TagId asc) order by TagId asc SELECT Top 10 * FROM TAlarmTag WHERE TagId > (SELECT MAX(TagId) FROM (SELECT TOP 810 TagId FROM TAlarmTag ORDER BY TagId asc) AS TEMP) order by TagId 以上两种写法得到的结果都是一样的,但后一种写法的性能更好,速度是前一种的2倍。(各运行1000次,并取平均值,再比较) 测试代码:long[] runtime = new long[1000]; for (int i = 0; i < 1000; i++) { using (SqlConnection connection = new SqlConnection(this.connectionStrings)) { connection.Open(); SqlCommand command = connection.CreateCommand(); command.CommandText = textBox1.Text; Stopwatch sw = new Stopwatch(); sw.Start(); SqlDataReader reader = command.ExecuteReader(); object o; while (reader.Read()) { o = reader[0]; } sw.Stop(); runtime[i] = sw.Elapsed.Ticks; } } long average = runtime[0]; foreach (long one in runtime) { average = (one + average) / 2; } label1.Text = Convert.ToString(average);