Открыть файл с указанным c расположением курсора - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь написать программу, которая может искать слово в текстовом файле и открывать его курсором в указанном c месте, где слово было найдено (перед словом). Я уже реализовал поиск, и я знаю, как открыть файл, но я не могу найти способ открыть файл с курсором в указанной позиции c. Есть ли способ сделать такую ​​вещь? Спасибо:)

Редактировать: просто чтобы уточнить, когда я говорю «Открыть», я имею в виду буквальное открытие файла с помощью Блокнота, а не открытие файла с помощью Streamreader.

Редактировать 2: я могу я не предполагаю, что Блокнот является текстовым редактором по умолчанию, но при необходимости я могу принудительно открыть файл.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

XAML:

<Window x:Class="WpfApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApp"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>
    <TextBox x:Name="TextBox1"/>
</Grid>

C#

using System.IO;
using System.Windows;
using System.Windows.Controls;

namespace WpfApp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            TextBox1.Focus(); // So the caret shows up
            string word = "hello";
            TextBox1.Text = File.ReadAllText("file.txt");
            var i = TextBox1.Text.IndexOf(word);
            if (i != -1) TextBox1.CaretIndex = i;
        }
    }
}

Это поместит курсор перед первым вхождением слова 'hello'. Вы даже можете выделить текст, используя TextBox1.Select (int offset, int length).

0 голосов
/ 14 февраля 2020

Вы не можете сделать это с помощью блокнота, но вы можете сделать это с помощью Notepad ++, используя следующие аргументы командной строки

-n: Scroll to indicated line (LineNumber) on filepath.
-c: Scroll to indicated column (ColumnNumber) on filepath.
-p: Scroll to indicated 0 base position (Position) on filepath.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...