日期:2014-05-20  浏览次数:20829 次

请教txt文件分页的问题?
一个大txt文本文件,10M左右的。
如何进行分页,分页随着屏幕字体大小改变而改变?
向前翻,向后翻如何计算读取多少字符?主要是往回翻。。。
请教思路。。。
有示例当然更好,谢谢了。。。

------解决方案--------------------
1.根据屏幕高度和字体高度计算显示的行数,再根据屏幕宽度和字体宽度计算每行显示的字符数量,就可以计算每页要读取的固定字符长度,记录当前的读取位置;
2.翻页则往前,或往后读取固定的字符长度,再记录当前的读取位置;
3.显示页面的时候记录当前屏幕上显示的第一行(是显示的第一行,而不是每页的第一行),更改字体的时候仍然从这一行开始显示;
4.如果要根据字体大小更改显示的字符数量,再回到第一步.
------解决方案--------------------
个人以为,确定每页显示的字符串长度之后,把每页都写成一个string字符串,放在数组中,进行查看。。

我也没搞过,只是一个思路,不一定对。。。
------解决方案--------------------
你都星星了这个还不会,2楼说的很明白了思路也对。重点就是 根据屏幕高度和字体高度计算显示的行数,再根据屏幕宽度和字体宽度计算每行显示的字符数量,就可以计算每页要读取的固定字符长度,记录当前的读取位置;
------解决方案--------------------
下面是我的思路,可行否仍需要楼主自己验证。

根据当前窗口的大小、字体和行距,计算出每行可以容纳多少字符(注意中文字符和英文字符的区别)以及可以容纳多少行,然后从当前位置向后或者向前逐一读取相应字符并将每个字符所占的像素累加(满足一行时开始下一行),直至占满屏幕为止。当然,到文件头或尾的时候要进行判断。
------解决方案--------------------
1,获取txt文本有多少行,假设为total行
2,根据显示的字体大小,判断每个屏幕可以显示多少行,假设为n
3,用(total+n)/n得到判断需要多少页才能显示完,假设得到结果为nPages
4,综上,第一页个屏幕显示0-nPages页,第二显示nPages-2*nPages,一次类推
------解决方案--------------------
你可以问问这里的 楼主,他和你做的是一样的功能

http://topic.csdn.net/u/20070525/13/02c8706d-0281-4044-bdc6-b2ebc0244740.html


希望对你有帮助
------解决方案--------------------
等待高手来解答~我还从没有想过txt文件也可以用来分页~长见识了
------解决方案--------------------
文件很大,应该分段读取。

读出一段文字(返回String),在对String处理<textView,返回String[],再指定起始行和终点行,循环画出String[i],翻页就是起始行和终止行同时加上 屏幕总行数(屏幕高除字体高度)

public void textView(String text){
StringBuffer temp = new StringBuffer();
Vector textV=new Vector();
for(int i=0;i<text.length();){

if(text.charAt(i++)!='\n')
temp.append(text.charAt(i-1));
else {
//System.out.println("遇到换行符!");
}

if((font.charsWidth(temp.toString().toCharArray(), 0, (temp.toString().toCharArray()).length)>width)
------解决方案--------------------
text.charAt(i-1)=='\n')
{

textV.addElement(temp.toString());
temp.delete( 0, temp.length());
}
}