哪些数据结构用于注释文本,哪些算法负责更新注释位置?在每一个好的文字处理器中都有一个注释功能,比如Microsoft,Google等等。
我可以想象两种方法:一种是用某种标记(例如XML标记)包围注释文本,这会隐式地将注释的位置存储在注释文本中。用户无法看到XML标记,因为它是由文字处理器预先解析的。
另一种方法可以是存储所有评论及其位置的数组,并在注释文本更改时更新这些位置。
还有其他可能的办法吗?具体实现的警告可以是什么?
发布于 2016-03-18 14:49:32
我会使用一个包含要注释文本的位置和长度以及注释文本的元组的简单集合来完成。
例如
public class Annotation {
public int Position;
public int Length;
public string Text;
}在C#中,最受欢迎的收藏似乎是OrderedDictionary。OrderedDictionary允许您按位置查找注释,但也可以按照注释在文本中的出现顺序进行迭代。当用户在文本中导航时,您甚至可以持有指向最近注释的指针。
var dictionary = new OrderedDictionary<int, Annotation>();发布于 2016-03-18 20:07:00
根据你对罗伯特·哈维的回答的评论,你可以把两者结合起来。
标记/xml标记将保持数组中某个项的位置以及某种类型的标识符。这样,标签的大小就减少了,因为它不需要保存注释的内容,并且可以很容易地在它之前输入项时移动。
在需要访问或转储所有注释的内容的情况下,可以利用数组的优势。通常这不包括位置,所以您只需要访问数组,而不是在文档中搜索标记。
https://softwareengineering.stackexchange.com/questions/313130
复制相似问题