1 (изменено: SuBrex, 2020-07-17 13:47:16)

Тема: AHK: Некорректная работа функции

Пожалуйста, подскажите почему функция всегда выводит значение ноль, хотя должна выводить номер строки.


ПолучениеНомераСтроки(НазваниеФайла, СтрокаДляПоиска)
{
    НомерСтроки := 0
    Loop, read, %НазваниеФайла%
     {
     EnvAdd, НомерСтроки, 1
     IfInString, A_LoopReadLine, %СтрокаДляПоиска%
      Break
     }
    Return НомерСтроки
}

2

Re: AHK: Некорректная работа функции

Если 0, значит либо неправильно указали путь к файлу, либо файл пустой.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: SuBrex, 2020-07-17 14:22:46)

Re: AHK: Некорректная работа функции

teadrinker
Самое интересное заключается в том, что в одном скрипте (Скрипт-тест с этой функцией и горячей клавишей на вывод значения этой функции) функция работает, а в другом не работает. Функции одинаковые, названия файлов тоже.

4

Re: AHK: Некорректная работа функции

Эта информация никак помочь не может. Добавьте в функцию:

ПолучениеНомераСтроки(НазваниеФайла, СтрокаДляПоиска)
{
    if !FileExist(НазваниеФайла)
      throw "Файл " . НазваниеФайла . " не найден"
    НомерСтроки := 0
    Loop, read, %НазваниеФайла%
     {
     EnvAdd, НомерСтроки, 1
     IfInString, A_LoopReadLine, %СтрокаДляПоиска%
      Break
     }
    Return НомерСтроки
}

Также можно проверять, что происходит внутри цикла с помощью MsgBox:

ПолучениеНомераСтроки(НазваниеФайла, СтрокаДляПоиска)
{
    if !FileExist(НазваниеФайла)
      throw "Файл " . НазваниеФайла . " не найден"
    НомерСтроки := 0
    Loop, read, %НазваниеФайла%
     {
      MsgBox, Строка №%A_Index%: %A_LoopReadLine%
     EnvAdd, НомерСтроки, 1
     IfInString, A_LoopReadLine, %СтрокаДляПоиска%
      Break
     }
    Return НомерСтроки
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Некорректная работа функции

teadrinker
Файл не был найден. Далее я понял, что файл должен лежать либо в папке скрипта, либо нужно указывать полный путь к нему (Очевидно).
Благодарю за показ функции FileExist .

6

Re: AHK: Некорректная работа функции

teadrinker
В фрагменте кода:


SendInput, % ПолучениеНомераСтроки("СУБ.ahk", %Этаж%)

Выдаётся ошибка: "Error: The following variable name contains an illegal character ""Список некоторых переменных""".
До этого в коде было написано:


Этаж = "Список некоторых переменных"

Как это исправить?

7

Re: AHK: Некорректная работа функции

Уберите знаки процентов вокруг переменной.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Некорректная работа функции

teadrinker
Благодарю!