在裸机上,受到内存容量的限制,文本编辑程序如何写?

everkImage 2011-02-17 09:16:20
由于内存容量较小,而硬盘很大,文件的大小可能会远远大于内存容量。为了避免频繁地读写硬盘,并且保证程序的运行速度,程序流程应该如何。这种问题应该是很早以前的软件开发才会遇到吧,有没有较成熟的方案?大家多帮忙,多提意见^^。
...全文
172 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
everkImage 2011-02-22
  • 打赏
  • 举报
回复
自己上浮一下,呵呵
贝隆 2011-02-18
  • 打赏
  • 举报
回复
1KB?
那别想了,连操作系统都无法加载。
楼主还是实在些吧,别假设了。
Ejack79 2011-02-18
  • 打赏
  • 举报
回复
别实现平滑滚动,只允许翻页,以页为单位进行处理。
呵呵,黑暗啊……
everkImage 2011-02-18
  • 打赏
  • 举报
回复
现在这样的问题真的都不用处理了,呵呵。那就回到开始:在内存容量只有1KBytes时,如何编写一个文本编辑程序,来编辑一个1MBytes的文本文件。要求尽量少地读写硬盘,程序运行流畅。
Great_Bug 2011-02-18
  • 打赏
  • 举报
回复
1. RAM 至少该够加载一屏文本。
2. 还至少该够加载文件当前被编辑的扇区。
3. 如果支持随机位置的文件内容编辑,则最好可以允许全部文件加载到RAM。如果只是在文件最后插入内容,则只要缓冲最后的一个扇区就可以了。
Great_Bug 2011-02-18
  • 打赏
  • 举报
回复
1K的RAM。。。。加载一屏的文本都做不到。。。。
everkImage 2011-02-18
  • 打赏
  • 举报
回复
EJack79说的在理,详细些就好了。比如读入一页内容,当删除操作后,后续数据是否读取,还是就让他空着^^
贝隆 2011-02-17
  • 打赏
  • 举报
回复
简单的说就是把使用较多的放到内存中,把使用较少的放到硬盘中。不过,现在的硬件应该不至于很贵啊。加内存是最好的办法,以便把所有的资源都读入内存。
everkImage 2011-02-17
  • 打赏
  • 举报
回复
可能是没描述清楚,具体问题就是用C语言写一个文本编辑程序,考虑内存限制,要求是程序的高性能。不过没有操作系统,没有虚拟内存。
关于lbing7说的复杂计算,这里可能不是很多,可能就是行偏移的计算,但由于是编辑程序,所以行数和行偏移随时会变,如果维护这个数据的话,程序性能可能会有损失。
lbing7 2011-02-17
  • 打赏
  • 举报
回复
方案不面对具体问题不知道怎么弄

通常用点小技巧试试,比如说把一些复杂的计算过程,事先计算好放到ROM里

用到计算的时候,再直接读出来即可

:)
schlafenhamster 2011-02-17
  • 打赏
  • 举报
回复
什么硬盘:“硬盘MB级”
everkImage 2011-02-17
  • 打赏
  • 举报
回复
内存KB量级,硬盘MB级的就算“内存容量较小,而硬盘很大”了,呵呵
schlafenhamster 2011-02-17
  • 打赏
  • 举报
回复
“内存容量较小,而硬盘很大”没遇到过。

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧