开始写文本编辑器了,同时把开发中的一些心得体会和大家分享一下。

树莓派 2009-07-11 11:17:26
加精
开始写文本编辑器了,同时把开发中的一些心得体会和大家分享一下。
从0开始写起。就像ICSharpCode那样的东西。
全部VB.Net的代码。
http://www.cnblogs.com/TextEditor/
...全文
1591 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhjsj 2011-08-23
  • 打赏
  • 举报
回复
学习中
tc8210 2010-12-15
  • 打赏
  • 举报
回复
受益非浅
junlovehang1314520 2010-11-30
  • 打赏
  • 举报
回复
向楼主学习
zxz054321 2010-09-22
  • 打赏
  • 举报
回复
很好很NB,学习了,谢谢了
liwei4026892 2010-09-21
  • 打赏
  • 举报
回复
膜拜下
williamjude 2010-06-29
  • 打赏
  • 举报
回复
膜拜各位达人!
masky5310 2010-04-08
  • 打赏
  • 举报
回复
MARK
树莓派 2009-07-15
  • 打赏
  • 举报
回复
很多功能没有完成,先放一个源代码:
http://files.cnblogs.com/TextEditor/TextBoxEx.rar
测试的时候,请把一个vb.Net的源代码文件改名为Test.txt放在C:\Test.txt下面,然后使用菜单的Open命令。
这个程序没有经过任何测试,只是一个Demo。只完成了复制和粘贴操作!!
树莓派 2009-07-14
  • 打赏
  • 举报
回复
ydyn1988
使用
RichTextBox的话,如果要给字符上色的话,很难做到撤销和重做的(RichTextBox自带的撤销和重做无法使用了)。
原来做过一个基于RTF的编辑器,自带的撤销和重做不起作用了的(RTF的改变选中文本的颜色执行后,冒似向撤销队列里加了什么东西。)
树莓派 2009-07-14
  • 打赏
  • 举报
回复
ydyn1988:
如果执意要使用现成的控件的话,CodeProject上面有一个例子很有参考价值的。
那个就是继承自RichTextBox的,用C#写的。
pilotedit 多行注释符,这个问题蛮棘手的。还不能光靠单行来判断呢。让我再考虑一下。
向各位报告一下进度:
基本操作:基本输入,删除文本,
选中操作:键盘和鼠标的选中文本操作
剪贴板操作:复制,剪切,粘贴等常用操作做完了
滚动条和行数表示。
VB语法的上色试验。

lingling1989r 2009-07-14
  • 打赏
  • 举报
回复
mark
纠结的程序猿 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 visualbasic2000 的回复:]
6 如果是使用自己的绘制文字的方法,Graphics,高量显示(DrawingString)速度蛮快的。
  在加载文挡得时候,所有行的分词操作已经做好了(每行有几个词,开始位置和终了位置),等需要的时候直接绘制,上色即可。
[/Quote]
Java, C/C++中有多行注释符。/**/,如果用户在文件的开头输入/*,那么后面所有的关键字都会变成注释,这种情况下你是否需要遍历所有的分词?
ydyn1988 2009-07-14
  • 打赏
  • 举报
回复
GetSel() 是 CRichEditCtrl 中的一个方法
我在好好研究研究
ydyn1988 2009-07-14
  • 打赏
  • 举报
回复
xie xie!
回头看看
lethwei 2009-07-13
  • 打赏
  • 举报
回复
不错的想法, mark
纠结的程序猿 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 visualbasic2000 的回复:]
5 16进制编辑没有打算做,不过应该不难。
代码现在还不方便展示,争取月底先放出一个Demo.
[/Quote]
16进制编辑虽然不难,但是当你在文本编辑和16进制编辑之间切换时,问题就多了。比如,用户在16进制编辑中把UTF-8的文件转换为UTF-16的文件,或者把DOS文件的\r\n替换成\n把它变成unix文件,如果你在文本编辑中仍然按照原来的文件类型来处理,就会出错。
树莓派 2009-07-13
  • 打赏
  • 举报
回复
1.关于Undo和Redo的话,应该有很多方法,最有名的是队列模式,这个模式能够向前向后撤销,重做。
2.大文件的话,只能考虑分成小块处理了,需要的部分读进来。
3回行显示(Word Wrap),列模式(Column Mode)这两个不是问题,就是代码要好好控制一下。
我的所有绘制文字都是手动控制的,理论上想如何显示就能如何显示。列模式的话,我的每行信息都独立保存的,每行信息都有选中开始位置和终了位置的。并不是只记录选中开始位置和终了位置的。不光是列操作,理论上能做到任意选中操作的(不过每行的选中部分必须是连续的)
4 还没有考虑检索功能,这个应该是行类的基本功能。
5 16进制编辑没有打算做,不过应该不难。
6 如果是使用自己的绘制文字的方法,Graphics,高量显示(DrawingString)速度蛮快的。
在加载文挡得时候,所有行的分词操作已经做好了(每行有几个词,开始位置和终了位置),等需要的时候直接绘制,上色即可。
代码现在还不方便展示,争取月底先放出一个Demo.
纠结的程序猿 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 visualbasic2000 的回复:]
4 还没有考虑检索功能,这个应该是行类的基本功能。
代码现在还不方便展示,争取月底先放出一个Demo.
[/Quote]
如果用行类来实现检索,如何做到多行查找和替换?
纠结的程序猿 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 visualbasic2000 的回复:]
3回行显示(Word Wrap),列模式(Column Mode)这两个不是问题,就是代码要好好控制一下。
我的所有绘制文字都是手动控制的,理论上想如何显示就能如何显示。列模式的话,我的每行信息都独立保存的,每行信息都有选中开始位置和终了位置的。并不是只记录选中开始位置和终了位置的。不光是列操作,理论上能做到任意选中操作的(不过每行的选中部分必须是连续的)
代码现在还不方便展示,争取月底先放出一个Demo.
[/Quote]
如果文件很大,比如1000万行,那么你需要多大的内存来保存所有行的信息?
lk8120043 2009-07-13
  • 打赏
  • 举报
回复
哇哇, 不知道多久我才能和楼主一样哦!
加载更多回复(30)

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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