易码技术论坛

 找回密码
 加入易码
搜索
查看: 241578|回复: 13

[求助]关于字符串浏览

[复制链接]
发表于 2006-1-19 14:40:00 | 显示全部楼层
建议将你的字符串写作二维字符数组,一个字符串表示一行。例如

  1. char text[10][]={"这是第一行","这是第二行","这是第三行",……};
复制代码

然后通过第一个下标控制显示的字符串。

如果你想使用你原来的方法,那就必须往上或往下搜索'\n',并把找到的位置作为你打印输出的新位置。不过那样不是很方便。
 楼主| 发表于 2006-1-19 16:48:00 | 显示全部楼层
就比如有一段很长的文字,你不好将所有文字的断行;

那要怎样实现一行一行的浏览呢?

比如

char text[]="GVmaker大赛历程: 从2000年的首届gvbasic大赛到现在的编程大赛,文曲星编程大赛已经走过了五年,许多人因为文曲星而喜欢上了编程知识,他们中不乏象比尔 盖茨一样的天才,我们很荣幸能为他们提供一个发挥自已能力的平台, 经过五年的推广,毫不夸张地说,文曲星编程大赛已经成为中国国内水平最高,影响最大的业余玩家编程竞技大奖赛...."
 楼主| 发表于 2006-1-19 16:49:00 | 显示全部楼层
换句话说;LAVA版的文书浏览是怎样实现断行的?
5612_28127_4040.bmp
发表于 2006-1-19 17:55:00 | 显示全部楼层
不断行的话可以这样:

char text[]="啊啊啊啊啊啊哦哦哦哦哦哦哦饿饿饿饿饿饿饿一一一一一一一我我我我我我我我他他他他他他他";



char t[51];

t[50]=0;

SetScreen(0);

memcpy(t,text+n,50);

printf("%s",t);

以后就变化n了。
n是变量。
[此贴子已经被作者于2006-1-21 20:13:08编辑过]

发表于 2006-1-19 18:09:00 | 显示全部楼层
如果是很长一段文字的话,可以考虑计算出在屏幕上显示的那部分内容的起始和结尾。把它们之间的那部分内容输出就好了。
 楼主| 发表于 2006-1-20 12:53:00 | 显示全部楼层
还是不明白??


9582_28222_3871.rar

14 KB, 下载次数: 129

发表于 2006-2-19 16:27:00 | 显示全部楼层
您可以这样办:

对需要被浏览的字符串进行逐字符分析,把应该作为一行的行首的字符的地址记录下来,并将其全部放进一个数组中,这样,您就有决定某时刻应当被显示的某一屏文字的起始与结尾的依据了。

我已据此法制作完成 void PutText(int text)函数,它可以负责完成帮助用户浏览一段文字的任务。
 楼主| 发表于 2006-2-20 12:36:00 | 显示全部楼层
可否参考一下?
发表于 2006-2-25 08:51:00 | 显示全部楼层
是啊,我也要!
发表于 2006-2-28 13:07:00 | 显示全部楼层
我可以提供,可是请稍候时日。
发表于 2006-3-2 12:58:00 | 显示全部楼层
我愿意提供它的源代码供大家分享,可是不久前我请jvp_0帮助我将wqx中的txt上传电脑,没想到第二天他说遇到了困难,“只会上传名片,行程,不会上传txt。”,希望有人能帮助我们,可以发帖告诉我们应该怎样做。                  Lumj  3月2日  
10343_35235_4232.gif
发表于 2006-3-4 10:36:00 | 显示全部楼层
用星际啊!
发表于 2006-3-10 12:45:00 | 显示全部楼层
怎样得到“星际”?
 楼主| 发表于 2006-1-19 13:09:14 | 显示全部楼层 |阅读模式
请问:



char text[]="啊啊啊啊啊啊\n哦哦哦哦哦哦哦\n饿饿饿饿饿饿饿\n一一一一一一一\n我我我我我我我我\n他他他他他他他";

由于WQX屏幕为5行,所以不能一次显示完,

而要分几次浏览

那么,如何做到第一次浏览1-5行,

然后按上下键浏览2-6, 再3-7  ??
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-5-10 05:20 , Processed in 0.013902 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表