将Gtk#Textbuffer内容保存到文件中

时间:2012-05-18 19:11:50

标签: c# mono gtk#

Gtk#是否可以将TextView / Textbuffer中的格式化文本写入文件? 什么是最合理的文件格式:XML,RTF,HTML?
如果没有可用的东西:
是否有一种简单的方法可以单步执行TextBuffer的TextIter元素? 我能想象的唯一方法是:

for (i=0; i<TextBuffer.CharCount; i++){
  iter=TextBuffer.GetIterAtOffset(i);
  writeIterAndTagToFile(iter);
}  

我希望有更好的方法 谢谢你的帮助 关于哈拉尔德

1 个答案:

答案 0 :(得分:2)

是的,您可以使用GTK的内部序列化格式将文本缓冲区的内容保存到文件中 - 这可以保证文本缓冲区和序列化文本之间可以一一对应。查看Gtk.TextBuffer.RegisterSerializeTagsetGtk.TextBuffer.Serialize

您也可以编写自己的序列化转换器并进行注册。我曾经为RTF写了一个; Sourceforge page。但是要让它在Mono中工作,你可能不得不以某种方式编写绑定。最新版本与GObject Introspection配合使用,但据我所知,这还不适用于Mono。我会提供帮助你写一个绑定,但我完全不知道编写Mono绑定。如果你最终写了一个,请告诉我,我会把它包含在项目中。