Как найти строку в текстовом документе
Перейти к содержимому

Как найти строку в текстовом документе

  • автор:

Поиск текста в документе

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

Поиск текста в документе? Область поиска можно находить символов, слов и фраз. При желании вы можете Заменить его с другой текст.

Если вы используете режим чтения, переключитесь в режим редактирования, выбрав пункты Редактировать документ > Изменить в Word Web App.

Изображение команды

Чтобы открыть область Поиск в режиме редактирования, нажмите сочетание клавиш CTRL+F или выберите Главная > Поиск.

Кнопка «Поиск» в режиме редактирования

Чтобы найти текст, введите его в поле Поиск в документе. Word Web App приступит к поиску, как только вы начнете вводить текст. Чтобы сузить результаты, щелкните значок в виде лупы и выберите один или оба параметра поиска.

Параметры поиска и замены, расширенные

Совет: Если вы не видите значок лупы, нажмите кнопку X в конце поля поиска для документа. . Значок с увеличительным стеклом продолжает отображаться.

Когда вы вводите текст или вносите изменения в документ, Word Web App приостанавливает поиск и очищает область Поиск. Чтобы снова просмотреть результаты, щелкните стрелку Следующий результат поиска или Предыдущий результат поиска.

кнопки «Предыдущий результат поиска» и «Следующий результат поиска»

После завершения поиска щелкните X в конце поле » Поиск документов для. «.

Как найти строку в текстовом файле?

Рассмотрим простейший способ поиска строки в текстовом файле с помощью READLN и прямого сравнения строк, либо нахождения подстроки в строке.

var t:text; s,s1:string; count:word; begin readln(s); assign(t,'text.txt');reset(t); s1:=''; count:=0; while not eof(t) and (s<>s1) do begin readln(t,s1); inc(count); end; writeln('искомая строка является ',count,' строкой в файле'); close(t); end. var t:text; s,s1:string; count:word; begin readln(s); assign(t,'text.txt'); reset(t); s1:=''; count:=0; while not eof(t) and (pos(s,s1)=0) do begin readln(t,s1); inc(count); end; writeln('буквосочетание "',s,'" найдено в строке N ',count,':'); writeln(s1); close(t); end.

&copy 2009–2024 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг

ISBIZ .agency
продвижение сайта

Как найти строку в текстовом документе

Добрый вечер. Мне необходимо в текстовом файле, который имеет более 1000 строк, найти информацию по подстроке поиска. Пока использую такой код:

Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(«C:\test.txt»);

Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(НомерСтроки);
СтрокаПоискаНайдена = СтрНайти(Стр, СтрокаПоиска);
КонецЦикла;

Но этот код очень медленный, т.к. уж очень много строк в текстовом файле находится. Есть ли более быстрый способ программного поиска, м.б. через api блокнота?

>>, м.б. через api блокнота
o_O
(0) загони весь файл в память ( в ту же ТЗ, например) и ищи там

(2) Это быстрее будет? Я же и так сначала создаю переменную типа «ТекстовыйДокумент», потом загружаю в эту переменную данные из файла. Разве ТЗ будет быстрее работать?

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

Команда FIND используется для поиска текстовой строки в одном или нескольких файлах. Если путь не задан, команда FIND выполняет поиск в тексте консоли либо в тексте, переданном по конвейеру другой командой ( в тексте, являющемся выводом команды, выполняющейся в цепочке с FIND ).

Формат командной строки:

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] «строка» [[диск:][путь]имя_файла[ . ]] Параметры команды:

/V — Вывод всех строк, НЕ содержащих заданную строку.
/C — Вывод только общего числа строк, содержащих заданную строку.
/N — Вывод номеров отображаемых строк.
/OFF[LINE] — Не пропускать файлы с установленным атрибутом «Автономный».
/I — Поиск без учета регистра символов.
«строка» — Искомая строка.
[диск:][путь]имя_файла — Один или несколько файлов, в которых выполняется поиск.

FIND /? — выдать справку по использованию команды.

find /I myfile.txt «новость» — выполнить поиск строки новость без учета регистра символов в текстовом файле myfile.txt . По умолчанию, если не задан параметр /I регистр символов учитывается.

find /C myfile.txt «новость» — отобразить общее количество строк, содержащих текст «новость».

FIND /I %TEMP%\*.tmp «windows» — выполнить поиск в каталоге временных файлов для всех файлов с расширением tmp строк , содержащих текст windows без учета регистра символов.

FIND /I %TEMP%\*.tmp «windows» | more — то же, что и в предыдущем примере, но с использованием постраничного вывода на экран.

ipconfig /all | FIND «DNS» — из вывода команды ipconfig /all найти строки, содержащие текст DNS

Обратите внимание, на нехарактерный синтаксис этой команды — строка поиска обязательно заключается в двойные кавычки, поэтому имена и пути файлов, содержащих пробелы, обрабатываются некорректно. Для поиска в таких файлах можно воспользоваться перенаправлением ввода ( символ )

Соответственно, пример с поиском во временных файлах, приведенный выше, в ОС Windows XP ( значение переменной %TEMP% по умолчанию принимает путь с пробелами ) будет выполняться верно при использовании следующей команды:

Естественно, шаблон имени файла *.tmp использовавшийся в примере выше, при перенаправлении ввода применять нельзя ( перенаправление можно выполнять для конкретного файла — textfile.tmp в примере ) и для организации поиска текстовой строки в нескольких файлах можно воспользоваться циклической обработкой их содержимого , например, с помощью команды FOR .

@ECHO OFF
for %%i in («%TEMP%\*.tmp») do FIND %%i «windows»
. . .

Применение команды FIND для поиска строки в результатах вывода другой программы используется, например, для определения доступности сетевого узла с помощью команды PING . Утилита ping.exe не возвращает признак доступности пингуемого адреса в значении переменной ERRORLEVEL (Ненулевое значение ERRORLEVEL утилита ping.exe формирует только в том случае, если заданы ошибочные параметры командной строки). Поэтому, для определения доступности IP- адреса, используется анализ вывода ping.exe, который отличается для доступного и недоступного узла. Так, например, если пингуемый адрес доступен, то в сообщении будет присутствовать значение TTL :

Обмен пакетами с yandex.ru [87.250.250.11] по 32 байт:
Ответ от 87.250.250.11: число байт=32 время=10мс TTL=55

А в случае недоступности, строка символов «TTL» в выводимых результатах отсутствует. Если строка символов «TTL» найдена, то FIND сформирует значение переменной ERRORLEVEL равным 0 Таким образом, для определения факта доступности узла в командном файле можно воспользоваться следующим способом:

ping -n 1 COMPUTER | find /I «TTL» > nul
if %ERRORLEVEL%==0 goto LIVE
ECHO computer не доступен
подпрограмма обработки недоступного состояния
. . .
Exit
:LIVE — начало подпрограммы обработки состояния доступности узла
. . .
. . .

Команда ping используется в цепочке с командой find (конвейер ) и результаты ее вывода используются в качестве ввода для поиска строки » TTL «. В конвейер добавлена команда перенаправления стандартного вывода на фиктивное устройство nul, т.е. подавление вывода. Ключ -n 1 задает однократный опрос узла COMPUTER для ping.exe.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *