Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB .NET > Определение номера страницы в RichTextBox |
Автор: ProgramerForever 20.8.2018, 21:39 | ||
Добрый день, уважаемые участники форума. Подскажите, как определать номер страницы найденного текста, в RichTextBox? Везде говорится про номер строки и метод .GetLineFromCharIndex(position)
|
Автор: diadiavova 22.8.2018, 00:09 |
Возможно есть смысл подсчитать в тексте символы https://en.wikipedia.org/wiki/Page_break. |
Автор: ProgramerForever 25.8.2018, 18:17 |
Для перехода на новую строку в rtf используется \page . В моём документе этого нет. Видимо текст сплошняком идёт, а при открытии в Word он сам разбивает на страницы. Пару костылей приходят в голову, но хочется более красивого решения 1) Взять текст, сделать split по \n, суммировать длины получившихся строк, деленных на 80, результат разделить на 45. (45 строк, 80 символов в строке) 2) Загрузить в Word, и там попытаться получить номер страницы. Уверен что в Word это сделать проще. Пример файла в аттаче |
Автор: ProgramerForever 26.8.2018, 02:55 |
Понятно что точность подобных методов плюс-минус лапоть, потому и говорю, что костыль. Нужно это всё для поиска по документам. Программа ищет текст в документах и выдаёт результат: что найдено, в каком документе, на какой странице. |
Автор: diadiavova 26.8.2018, 11:42 | ||
ProgramerForever, тут вопрос в том, по какому принципу нужно делить документ на страницы. Так как это делает ворд? Тогда вопрос в том, какие настройки использовать, ведь ворд делает это для печати и тому подобных вещей. Если есть возможность загрузить все в ворд, то там можно найти логические разрывы страниц, например так
|
Автор: ProgramerForever 26.8.2018, 13:17 |
Спасибо. я опробую этот вариант. Всё равно некоторый препроцессинг делается с файлами (переводится в rtf, он быстрее и надёжнее грузится), там и это можно добавить. |
Автор: ProgramerForever 10.9.2018, 02:06 |
Попробовал такой метод. Не получилось, т.к. в исходном документе нет разрывов страниц, Word их тоже не видит. Открыл в Word вручную и пробовал заменить "^m" на свой текст. Результат - Произведено 0 замен. |
Автор: diadiavova 11.9.2018, 00:30 |
ProgramerForever, ну я там говорил не об использовании функции замены, а о выполнении приведенного кода в макросе. Но сейчас снова попробовал этот код и что-то он не работает, хотя в тот раз работал. Странно. Наверно надо этот вопрос задавать в разделе, посвященном VBA, там лучше знают как это сделать. Могу перенести тему туда, если хочешь. |