Откройте файл в стандартном редакторе и перейдите к определенной строке

Я программирую небольшой инструмент для обработки файлов XML. Он написан на C++ с использованием 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 вместо блокнота, с тем же результатом. Где моя ошибка?

Спасибо за вашу помощь.

1 ответ

Решение

Я бы сделал это следующим образом (Windows):

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

Приведенный выше код открывает экземпляр приложения Notepad++, загружает файл file.xml и прокручивает строку 2000 ( переключатель командной строки -n) открытого файла.

Другие вопросы по тегам