设为首页收藏本站

八达网

 找回密码
 注册
查看: 730|回复: 13
打印 上一主题 下一主题

不得不把我遇到的一个技术难题拿上来请教8da的神仙了

[复制链接]

2246

主题

12

好友

2万

积分

管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

战队
种族
Protoss

2013年度八达十大水友 2012年度八达十大水友 2011年度八达十大水友

跳转到指定楼层
1
发表于 2013-5-17 15:03 |只看该作者 |倒序浏览
我在做一个电子书软件
要求导入一个UTF8的TXT文件,就可以看书
开发平台为IPHONE

现在碰到一个问题。
由于字体的宽度因字而异,比如标点符号就比汉子的宽度要小
因此每一页所容纳的字数实际是不同的,这还不考虑换行问题

有什么办法能快速(1-2秒以内)迅速的将一个6M左右的文件根据屏幕宽度以及高度分页完毕
分页完毕时,每一页的页头都能对应这个TXT里的一个位置

为什么要这么做呢。。因为很多用户打开书籍以后,会想要跳转,比如打开后就想从书的一半看起
我如果没有分页数据,随便给他定位,他往前翻着翻着,最后就会发现第一页只显示了一半。

我看了下目前主流的软件如熊猫看书、qq阅读器、goodreader都能轻松做到,他们也不是用什么等宽字体。
到底是咋回事呢?
1

查看全部评分

189

主题

0

好友

5172

积分

飞龙

2
发表于 2013-5-17 15:05 |只看该作者
要是你有种子问题,我可以帮你问问6条2
回复

使用道具 举报

236

主题

1

好友

138

积分

机枪兵

请原谅我的粗撸,让您意外地受精

3
发表于 2013-5-17 15:32 来自手机 |只看该作者
要是你有种子问题,我可以帮你问问6条2
回复
回复

使用道具 举报

452

主题

0

好友

2592

积分

坦克

4
发表于 2013-5-17 15:35 |只看该作者
暴力方法
是ansii字符  宽度+1 char index + 1
否则宽度+2, char index + 3
对付多字节编码的就不灵了,当哥你是不是还要先搞定文件的编码识别?  好消息是这么多的开源浏览器 他们的源码里面都有对于文件编码识别的实现, 抠出来用就好
2861316437
2836235853
回复

使用道具 举报

2246

主题

12

好友

2万

积分

管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

战队
种族
Protoss

2013年度八达十大水友 2012年度八达十大水友 2011年度八达十大水友

5
发表于 2013-5-17 15:38 |只看该作者
rolin 发表于 2013-5-17 15:35
暴力方法
是ansii字符  宽度+1 char index + 1
否则宽度+2, char index + 3

暴力的办法问题是速度太慢
一个6m的书,几百万字
暴力遍历一遍黄花菜已经凉了
回复

使用道具 举报

17

主题

0

好友

2万

积分

大和

6
发表于 2013-5-17 15:41 |只看该作者
先把所有的unicode解析一次
生成一个文件,存每个字的大小
再做索引和二级索引
以空间换时间
回复

使用道具 举报

2246

主题

12

好友

2万

积分

管理员

Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

战队
种族
Protoss

2013年度八达十大水友 2012年度八达十大水友 2011年度八达十大水友

7
发表于 2013-5-17 15:42 |只看该作者
maddrone 发表于 2013-5-17 15:41
先把所有的unicode解析一次
生成一个文件,存每个字的大小
再做索引和二级索引

但是用户换字体就得全部再算
除非把所有字体都算好。。
可是用户新导入一本书怎么办?
回复

使用道具 举报

17

主题

0

好友

2万

积分

大和

8
发表于 2013-5-17 15:48 |只看该作者
啊当 发表于 2013-5-17 15:42
但是用户换字体就得全部再算
除非把所有字体都算好。。
可是用户新导入一本书怎么办?

新加入的字体当然需要重新计算索引
新加入书不用
回复

使用道具 举报

2

主题

1

好友

3万

积分

大和

9
发表于 2013-5-17 17:22 |只看该作者
我用的ieader软件往前翻的话就会变,变了的话会重新分页,其实没什么影响

回复

使用道具 举报

2

主题

1

好友

3万

积分

大和

10
发表于 2013-5-17 17:25 |只看该作者
ireader
回复

使用道具 举报

177

主题

5

好友

6万

积分

仲裁者

永恒之格里高里

战队
Sun.F
种族
Protoss
11
发表于 2013-5-17 17:29 |只看该作者
ireader
埃丽西斯,我今年才二十四岁,还有些本钱追求一下自己的梦想,也有破釜沉舟、推倒重来的勇气。也许再过几年,我就再也没有这种勇气了。这一次无论失去了什么,我都不会后悔!人生在世,为梦想总得赌上一次的!”
回复

使用道具 举报

253

主题

12

好友

11万

积分

黑暗执政官

图样图森破

战队
SCI
种族
Terran
12
发表于 2013-5-17 17:38 |只看该作者
我觉得ireader最好用啊,即使它是会变的也影响不大。
回复

使用道具 举报

780

主题

0

好友

13万

积分

主区版主

Rank: 8Rank: 8Rank: 8Rank: 8

13
发表于 2013-5-17 18:14 |只看该作者
原创内容 水晶 +2
回复

使用道具 举报

0

主题

4

好友

10万

积分

黑暗执政官

=,=

14
发表于 2013-5-17 21:21 |只看该作者
非灌水機,純正手動輸入,管理員明鑒.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2026-1-24 01:00

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部