2014-12-03 51 views
1

我在編寫一個小工具來處理XML文件。它是用Qt編寫的。用標準編輯器打開文件並跳轉到特定行

要打開這樣的文件有我用了一個編輯:

QDesktopServices::openUrl(QUrl::fromLocalFile(file.xml)) 

下一個步驟是打開XML文件並跳轉到指定的行。我試圖使用ShellExecute

ShellExecute (NULL, "open", "Notepad.exe", "path.xml -l 200", NULL, SW_SHOWNORMAL); 

但是,它沒有奏效。上面的行打開文件path.xml,但不是在第200行。我試着用VIM代替記事本,結果相同。我的錯誤在哪裏?

感謝您的幫助。

+0

您是否嘗試過使用「編輯」而不是「打開」? – 2014-12-03 13:39:33

+3

你爲什麼期望,「-l 200」的意思是「在200線開放」?據我所知,只有四個記事本的命令行參數:/ A,/ W,/ P和/ PT(並且它們中沒有一個幫助將光標移動到指定的行)。因此,首先,您需要查找編輯器,該編輯器支持參數「-l」或其他參數,以便在指定的行上打開。 – Ilya 2014-12-03 13:53:10

+0

嘗試使用這些參數打開VIM:「+200 path.xml」。 – Ilya 2014-12-03 13:55:33

回答

0

我會做下列方式(Windows)中:

QProcess proc; 
proc.startDetached("C:\\Program Files (x86)\\Notepad++\\Notepad++", 
        QStringList() << "file.xml" << "-n 2000"); 

上面的代碼打開記事本++應用程序的實例,負載file.xml文件和滾動到打開的2000線(-n command line switch)文件。

+0

這工作正常。也用vim和參數「+ linenr」。 – wattele 2014-12-04 09:46:58

+0

@wattele,是的,同樣的方法可以支持任何支持這種命令行參數的文本編輯器。 – vahancho 2014-12-04 09:48:21

相關問題