Использование Octave для «Редактирования» файла блокнота вместо «Открыть» в Windows

Я использую Windows 10 и программу .exe (собственный код, написанный моим коллегой), которая импортирует данные из файлов .txt. Поскольку 99% моих файлов .txt предназначены для этой программы, я изменил программу Windows по умолчанию, чтобы этот .exe-файл запускался автоматически при открытии .txt-файла. Если мне нужно получить доступ к файлу .txt напрямую или использовать его для других целей, я щелкаю правой кнопкой мыши и выбираю «изменить».

Сейчас я пишу свою собственную программу (с использованием Octave 4.4.1), которая также использует файлы .txt, которые иногда нужно открывать / редактировать, но если я использую "open(filename)" в моем сценарии Octave, конечно он просто открывает файл .exe. Я могу открыть файл .txt оттуда, но я бы хотел пропустить этот средний шаг, поскольку вышеупомянутая программа .exe не предназначена для использования в этом процессе, и есть другие пользователи моего кода, у которых нет установлена ​​программа .exe.

Есть ли способ дублировать функцию щелчка правой кнопкой мыши / редактирования в Windows в коде Octave? "edit(filename)" открывает файл в собственном редакторе Octave, что технически жизнеспособно, но не совсем желательный сценарий. Я также пробовал изменить редактор Octave по умолчанию на Блокнот, и я тоже пробовал Notepad++, но мне не повезло, даже со значительными усилиями, заставить Octave использовать любой внешний редактор по умолчанию (даже когда я удалите программу .exe по умолчанию для файлов .txt). Заранее благодарим за любой совет, который вы можете предложить.

1 ответ

Вы можете отправлять команды командной строки из Octave, используя system() функция.

Например, чтобы открыть файл в блокноте, вы можете сделать

      [status, output] = system("notepad <path_to_text_file>.txt");

Если notepad не находится в вашем системном пути, вам нужно будет добавить его или использовать полный путь к исполняемому файлу блокнота

Или, если вы хотите использовать Notepad ++, добавьте его в свой системный путь, а затем выполните

      [status, output] = system("notepad++ <path_to_text_file>.txt");
Другие вопросы по тегам