簡體   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