1 (изменено: Leva2.aksenov, 2016-01-17 14:37:23)

Тема: Работа с файлом

Добрый день всем. Столкнулся с проблемой при написании одного скрипта.
Суть такова, что при нахождении отдельного слова из перечисленных, не важно в каком месте в какой строке, будет выполнятся то или иное действие
Сразу столкнулся с вопросом можно ли задать переменой несколько значений что бы использовать 1 переменную в дальнейшем,если нет то как облегчить такой код
Дальше я пробывал вот этот код

#Persistent
#SingleInstance
file =  %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
!1::
{
Fileread, read, %file%
if read contains текст
{
goto, try
}
}
return

try:
file =  %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileDelete, %file%
FileAppend, , %file%
msgbox, есть
return

Но дело в том что так скрипт реагирует на всё,даже если будет написано фвфывфытекстфывфыв.
так же пробывал вот такой код

#Persistent
#SingleInstance
file =  %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
no:
Loop, Read, %file%
{
IfInString, A_LoopReadLine, текст
goto, try
}
goto, no
try:
file =  %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileDelete, %file%
FileAppend, , %file%
msgbox, есть
goto, no
return

Вот как то так,а мне надо только что бы если оно отдельным словом.
Поможет кто?

2

Re: Работа с файлом

Можно так:

var := "яблоко, груша"
if RegExMatch(var,"(*UCP)\b(яблоко|груша)\b")
   MsgBox, found
return

3

Re: Работа с файлом

Malcev пишет:

Можно так:

var := "яблоко, груша"
if RegExMatch(var,"(*UCP)\b(яблоко|груша)\b")
   MsgBox, found
return

Не совсем понял,как сделать этот поиск регматч в файле?

4 (изменено: Malcev, 2016-01-17 16:32:18)

Re: Работа с файлом

Командой FileRead считываем файл в перемееную.
А в переменной уже производим поиск.

5 (изменено: Leva2.aksenov, 2016-01-17 16:37:53)

Re: Работа с файлом

Malcev пишет:

Командой FileRead считываем файл в перемееную.
А в переменной уже производим поиск.

FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
var := "яблоко, груша"
!1::
{
if RegExMatch(var,"(*UCP)\b(яблоко|груша)\b")
   MsgBox, found
return
}
reeturn

так что ль?

6

Re: Работа с файлом

!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"(*UCP)\b(яблоко|груша)\b")
   MsgBox, found
return

7

Re: Работа с файлом

Malcev пишет:
!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"(*UCP)\b(яблоко|груша)\b")
   MsgBox, found
return

так тоже побывал,не работает

8 (изменено: Malcev, 2016-01-17 16:58:04)

Re: Работа с файлом

А путь правильный?

FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
msgbox % ErrorLevel

9

Re: Работа с файлом

Malcev пишет:

А путь правильный?

FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
msgbox % ErrorLevel

путь указан верно но выдаёт 0,мол типо не верно я так понял

10

Re: Работа с файлом

Раз 0 - значит все в порядке.
А какие слова ищите? Возможно их в том тексте нету.

11

Re: Работа с файлом

Malcev пишет:

Раз 0 - значит все в порядке.
А какие слова ищите? Возможно их в том тексте нету.

Собственно и побывал яблоко искать

12

Re: Работа с файлом

Значит слова "яблоко" в том тексте нету.

13

Re: Работа с файлом

Malcev пишет:

Значит слова "яблоко" в том тексте нету.

Есть
Ладно давайте отталкиваться от вот этого

!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"(текст1|текст2|текст3)")
MsgBox, found
return

так работает но реагирует на фывфывтекст1фывфыв

14 (изменено: Leva2.aksenov, 2016-01-17 17:27:51)

Re: Работа с файлом

Leva2.aksenov пишет:
Malcev пишет:

Значит слова "яблоко" в том тексте нету.

Есть
Ладно давайте отталкиваться от вот этого

!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"(текст1|текст2|текст3)")
MsgBox, found
return

так работает но реагирует на фывфывтекст1фывфыв

Пробовал вот так

!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"/b(текст1|текст2|текст3)/b")
MsgBox, found
return

по идеи должно работать но нет..
Возможно из за того что граница слова не определяется для кириллицы. AutoHotKey не считает русские буквы буквами.
Только это проблема,и можно ли её решить?

15

Re: Работа с файлом

А зачем вы сократили регулярку?
Надо так:

!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found
return

16

Re: Работа с файлом

Malcev пишет:

!1::
FileRead, var, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found
return

потому что так не работает

17

Re: Работа с файлом

Значит не то, или не там, или не так ищите.

var=
(
bnbm
jugiou jhou текст1
рщшгрщш рощшгш
мгормго
)
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found

18

Re: Работа с файлом

Malcev пишет:

Значит не то, или не там, или не так ищите.

var=
(
bnbm
jugiou jhou текст1
рщшгрщш рощшгш
мгормго
)
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found

так вот вы сами сейчас поминяли скрипт
Попробуйте сами

!1::
FileRead, var, file.txt
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found
return

создайте рядом с ахк file.txt и напишите там ыффывфыа текст1 фвфыв и посмотрите работает или нет

19

Re: Работа с файлом

Leva2.aksenov пишет:
Malcev пишет:

Значит не то, или не там, или не так ищите.

var=
(
bnbm
jugiou jhou текст1
рщшгрщш рощшгш
мгормго
)
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found

так вот вы сами сейчас поминяли скрипт
Попробуйте сами

!1::
FileRead, var, file.txt
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found
return

создайте рядом с ахк file.txt и напишите там ыффывфыа текст1 фвфыв и посмотрите работает или нет

Хотя  и данный код

var=
(
bnbm
jugiou jhou текст1
рщшгрщш рощшгш
мгормго
)
if RegExMatch(var,"(*UCP)\b(текст1|текст2|текст3)\b")
   MsgBox, found

на деле не работает.

20 (изменено: Malcev, 2016-01-17 18:09:45)

Re: Работа с файлом

У меня работает.
Возможно у вас ahk установлена не unicode, либо не актуальная версия.

21

Re: Работа с файлом

Malcev пишет:

У меня работает.
Возможно у вас ahk установлена не unicode, либо не актуальная версия.

Эм вот это верно,устанавливал я ANSI 32 так Unicode 64\32 при активации пишет ???????? место текста к примеру

22 (изменено: Leva2.aksenov, 2016-01-17 18:27:35)

Re: Работа с файлом

Есть 3 вида строки

[17:20:41] - тест {0000FF}(Leva_Cullen)[75]
[17:20:53] (( Leva_Cullen[75]: тест ))
[17:20:59] Leva_Cullen[75] крикнул: тест

Нужно если найдено тест то в переменную заносилось цифры в квадратных скобках

23

Re: Работа с файлом

Leva2.aksenov, ознакомьтесь с этой темой, отредактируйте свои посты.

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

24

Re: Работа с файлом

teadrinker пишет:

Leva2.aksenov, ознакомьтесь с этой темой, отредактируйте свои посты.

Я не понимаю что вы хотите,это не форум русскоязедрочеров которые прям колбасятся когда не видят нормального русского языка.Я лично с белоруссии и мне по барабану честно как я пишу,ладно если бы я писал как совсем тупой школьник без всякого того смысла

25

Re: Работа с файлом

Leva2.aksenov пишет:

Я не понимаю что вы хотите ... мне по барабану честно как я пишу

Leva2.aksenov, да мне тоже честно вы по барабану. У вас полчаса чтобы всё понять и исправиться.

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

26

Re: Работа с файлом

Участник Leva2.aksenov заблокирован за нежелание выполнять правила форума.

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