【问题标题】:EmEditor macro in JS: how to get the full content of a document objectJS 中的 EmEditor 宏:如何获取文档对象的全部内容
【发布时间】:2022-11-02 11:14:49
【问题描述】:

在 EmEditor 宏中获取文档的内容,似乎需要先选择完整的内容,然后Window.Document.Selection.Text用于获取其内容。但这会失去当前的位置和选择状态。

有没有类似的东西窗口.文档.内容以更好的方式完成工作?谢谢!

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如它目前所写的那样,很难准确地说出你在问什么。
  • 您确实需要选择整个文档才能将内容作为字符串获取。您可以使用GetAnchorPointXGetActivePointX 保存选择位置,并使用SetActivePoint 设置选择。
  • 谢谢@MakotoE!解决方法是好的,但恢复所有当前选择似乎是一个很大的挑战。

标签: javascript macros emeditor


【解决方案1】:

您可以使用循环通过附加每一行来获取宏中文档的内容,如下所示:

var content = "";
numberOfLines = document.getlines();
for ( i = 1; i <= numberOfLines; i++ ) {
    content = content + document.getline( i );
}

它将保留光标和所有选择。但是,如果您的文件超过数百行,则此方法会很慢。

【讨论】:

  • 谢谢@汉斯!我刚刚用一个620000行的文件测试了一下,循环用了7秒左右,还不错。很好的解决方案!
  • 太好了,卡斯帕。循环未能捕捉到最后一行。我将条件i &lt; numberOfLines 更改为i &lt;= numberOfLines
猜你喜欢
  • 2023-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多