繁体   English   中英

在文件内设置光标位置

[英]Setting the cursor position inside a file

我只想知道,是否有可能在文本文件中设置光标的位置,我使用以下代码打开文本文件:


if (File.Exists(file))
{
       Process.Start(file);//file is a string that contain the file path
}

如您所见,打开的文件是另一个过程,如果还有另一种使用C#打开文件的方法,则该方法可以为我提供在文件内设置光标位置的可能性。

例如:

在第20行或第200个字符处打开文件。 我想打开扩展名为.java的文件,所以我想使用默认程序来处理我的文件。

尽管使用通用文本编辑器是不可能的,而使用系统上的默认文本编辑器可能是不可能的,但使用许多其他文本编辑器则可能。 例如,您可以安装notepad ++并使用可用的命令行开关:

notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage]
 [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos]
 [-nosession] [-notabbar] [-ro] [-systemtray] [-alwaysOnTop] 
[-Llanguege code] [-r]

然后你可以使用类似的代码从这个帖子跳转到文件中的特定位置。

编辑:如果需要到达特定的字符位置,则可以阅读文件并找出要查找的字符落在哪行和列号上。 执行此处理时,请不要忘记包含换行符(可以为1或2)!

不,不可能。 当您使用Process.Start “运行”外部文件时,实际上是将控制权传递给操作系统,并说:“请根据文件扩展名在其默认应用程序中打开该文件”。 当然,什么结果取决于您配置为打开文件类型的应用程序。

在大多数情况下,文本文件会在Notepad.exe中打开,但是如果您安装了另一个文本编辑器(如我的(UltraEdit)),则很可能会在其中打开它。 无论哪种方式,操作系统都不保证它会完全运行任何应用程序。 除此之外,您甚至无法控制光标(即使有光标)在目标应用程序中的结束位置。 例如,可能会配置您的操作系统,以便无论出于何种原因在Windows Media Player中打开txt文件。 没有“光标位置”的概念...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM