我正在写一个使用c#模板http://sourceforge.net/projects/sourcecookifier/files/other%20plugins/NppPlugin.NET.v0.5.zip/download的notepad++插件。
有人知道如何读取所有当前文档文本,因为我需要将所有文本读取为字符串吗?
有人知道读取当前文档文本的函数吗?
发布于 2012-01-06 10:43:09
参考Scintilla API文档会让你找到正确的方向:
http://www.scintilla.org/ScintillaDoc.html#SCI_GETTEXT
您链接的Demo项目有一个发送消息的示例。
发布于 2016-02-22 20:26:47
这段代码适用于我,使用您在Notepad++网站上找到的演示C#项目:
int length = (int) Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETLENGTH, 0, 0);
IntPtr ptrToText = Marshal.AllocHGlobal(length+1);
Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETTEXT, length, ptrToText);
string textAnsi = Marshal.PtrToStringAnsi(ptrToText);
Console.WriteLine(textAnsi);
Marshal.FreeHGlobal(ptrToText);更新:http://www.scintilla.org/ScintillaDoc.html#SCI_GETTEXT
需要为行尾^^分配一个额外的字节
https://stackoverflow.com/questions/8751326
复制相似问题