Что нового

Поиск слов в тексте файла txt

Max_h

Новичок
Сообщения
3
Репутация
0
Всем трям!
Помогите в написании скрипта. плз

Алгоритм простой. Нужно в текстовом файле найти совпадение хотя бы с одной последовательностью символов. Условно "Вася"
Использовал _FileReadToArray, но там только полное совпадение по строкам работает для _ArraySearch :(

StringRegExp - слишком сложен для меня. есть способы попроще ?
 

All2khoff

Продвинутый
Сообщения
385
Репутация
70
Код:
; Определяем путь к файлу
Local $filePath = "file.txt"

; Проверяем, существует ли файл
If Not FileExists($filePath) Then
    ConsoleWrite("Файл не найден: " & $filePath & @CRLF)
    Exit
EndIf

; Открываем файл для чтения
Local $fileHandle = FileOpen($filePath, 0)
If $fileHandle = -1 Then
    ConsoleWrite("Не удалось открыть файл: " & $filePath & @CRLF)
    Exit
EndIf

; Определяем массив имен для поиска
Local $names[4] = ["вася", "петя", "сережа", "андрей"]

; Флаг для отслеживания найденных совпадений
Local $foundMatch = False

; Читаем файл построчно
While 1
    Local $line = FileReadLine($fileHandle)
    If @error Then ExitLoop ; Выход из цикла, если достигнут конец файла

    ; Проверяем наличие хотя бы одного имени в строке
    For $i = 0 To UBound($names) - 1
        If StringInStr($line, $names[$i]) > 0 Then
            ConsoleWrite("Найдено совпадение: " & $line & @CRLF)
            $foundMatch = True ; Устанавливаем флаг, если найдено совпадение
            ExitLoop 2; Выход из цикла, если найдено любое совпадение
        EndIf
    Next
WEnd

; Закрываем файл
FileClose($fileHandle)

; Проверяем, были ли найдены совпадения
If Not $foundMatch Then
    ConsoleWrite("Совпадения не найдены." & @CRLF)
EndIf
 
Последнее редактирование:
Верх