locked
windows 10 UWP中,如何分页读取文本文件? RRS feed

  • 问题

  • 我是想做一个阅读器应用,只阅读文本格式的文件(*.txt,*.cs,*.css,*.html,*.xml,*cpp等等),
    考虑到文本文件的大小不固定(可能几KB,也可能数百MB,例如电子书),现在遇到几个问题:
    如何分页?根据设备屏幕大小,将文本文件分页显示,
    如何算出一个文本文件能显示多少页?
    如何读取指定页数的文本内容并显示出来?

    希望大神们能够提供一个思路,
    2015年9月2日 5:41

答案

  • “屏幕的长宽应该是可以拿到的,那么就可以根据你app设置的每个字的大小-长宽来算出整个屏幕能个容纳的字的数量,就是用屏幕宽度除以字宽,然后向下取整(12.3=>12),长也是这样。然后根据整个文本的长度,除以一个屏幕字数,然后就可以获取分页的数量。”


    多谢回答,但问题是,文本既有汉字,也有英文、标点符号,汉字和英文并不等宽啊,
    何况在同一行,英文一个单词显示不下会挪到下一行显示,
    所以这样计算出来并不准确啊,


    还请解答,
    • 已标记为答案 jesse hao 2016年6月3日 2:46
    2015年9月12日 4:10

全部回复

  • Hello,

    >>如何分页?根据设备屏幕大小,将文本文件分页显示,如何算出一个文本文件能显示多少页?

    屏幕的长宽应该是可以拿到的,那么就可以根据你app设置的每个字的大小-长宽来算出整个屏幕能个容纳的字的数量,就是用屏幕宽度除以字宽,然后向下取整(12.3=>12,长也是这样。然后根据整个文本的长度,除以一个屏幕字数,然后就可以获取分页的数量。

    >>考虑到文本文件的大小不固定(可能几KB,也可能数百MB,例如电子书),

    我不认在手机上读取一个大小达到几百MB的文件是一个好的设计。(目前我是没有在手机上见过读取这么大的文件的app

    >>如何读取指定页数的文本内容并显示出来?

    这个就需要算出来了,按照指定的页数,乘以每屏幕的字数,算出要显示的屏幕的第一个字在读取文本的stream里,是第几个位置,从这个位置开始读取。

    Regards.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年9月3日 1:56
    版主
  • “屏幕的长宽应该是可以拿到的,那么就可以根据你app设置的每个字的大小-长宽来算出整个屏幕能个容纳的字的数量,就是用屏幕宽度除以字宽,然后向下取整(12.3=>12),长也是这样。然后根据整个文本的长度,除以一个屏幕字数,然后就可以获取分页的数量。”


    多谢回答,但问题是,文本既有汉字,也有英文、标点符号,汉字和英文并不等宽啊,
    何况在同一行,英文一个单词显示不下会挪到下一行显示,
    所以这样计算出来并不准确啊,


    还请解答,
    • 已标记为答案 jesse hao 2016年6月3日 2:46
    2015年9月12日 4:10