Мне пока не доступно чтение мыслей.
Опираться на содержимое первого сообщения уже не представляется возможным, так как Вы его недавно редактировали, исказив тем самым начальный посыл, но даже сейчас в нём идёт речь о примере, предпринимающим некоторые действия в конкретной ситуации. Следовательно, все 24 случая будут делать то же самое, с разницей лишь в записываемом значении во второй файл.
ОсиповаТатьяна пишет:Почему именно 9 символов?
Девять символов = касаются конкретно текущей ситуации примера. Количество символов для каждого отдельного случая можно получить при помощи StrLen().
ОсиповаТатьяна пишет:Дальше вы пишите, что "SubStr() — извлекает символы с конца."
Но ведь в моем файле 1.txt - слово "вторпол16" - оно не самое последнее во всем тексте. Там и после него - идут какие-то символы.
И если извлекать последние 8 символов с конца - то получится "ry756567"
Я имела ввиду, что "вторпол16" - это последнее из ключевых слов встречающееся в документа, а не последнее слово с конца.
Первое сообщение описывает ситуацию иначе:
ОсиповаТатьяна пишет:То есть если последнее слово, которое я введу в 1.txt - будет слово "день вторпол16" - то после сохранения 1.txt запуска ahk-скрипта в файл 2.txt - впишется "день вторпол16" (заменив предыдущее содержимое файла).
=========================
Раз ключевых значений 24, полагаю, что это по количеству часов в сутках, тогда из файла, нужно получать не строку, а число, следующее последним в группе символов без пробела, в строке, начинающейся с "утро", "день", "вечер", или "ночь".
Число будет точнее отождествляться с тем, что Вам нужно, если, конечно, "перпол" и "вторпол" не обозначают соответственно первую, или вторую половину часа, число которого искомое. Тогда:
FileRead, fileContent, 1.txt
lastState := RegExReplace(fileContent, ".*(?<=утро|день|вечер|ночь) ([а-я\d]+)", "$1")
MsgBox % lastState
Теперь "lastState" будет всегда содержать последнее записанное в первый файл состояние, которое Вы можете записывать описанным ранее способом во второй. Или, так:
FileRead, fileContent, 1.txt
RegExMatch(fileContent, ".*(?<=утро|день|вечер|ночь) ([а-я]+)(\d+)", m)
MsgBox % Format("{} половина {} часа", m1 == "перпол" ? "Первая" : "Вторая", m2)