1

Тема: AHK: Цикличный вывод и повтор текста от точки до точки

Здравствуйте, я бы хотел сделать код, чтобы выводил текст по предложениям от точки до точки. (например из заданного). По окончанию пустая строка и снова повтор по типу:

13213.
12321.
12321.
(пустая строка)
13213.
12321.
12321.

2

Re: AHK: Цикличный вывод и повтор текста от точки до точки

Мы не против.

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

3

Re: AHK: Цикличный вывод и повтор текста от точки до точки

awtorizator
Добрый день! По горячей клавише?

4 (изменено: awtorizator, 2019-09-23 16:05:51)

Re: AHK: Цикличный вывод и повтор текста от точки до точки

dmitry-semin, добрый, да по горячей клавише, можно любую, я уже под себя переделаю.
teadrinker, знать бы как мой вариант (взят с сайта) слишком долго редактировать под себя, если текст объемный

!q::
Gosub % "Key" a := (!a || a = 2) ? 1 : a+1
KeyWait, % A_ThisHotkey
Return
Key1:
SendInput За окном темнела ночь.
Return
Key2:
SendInput {Enter}Я не мог уснуть.
Return

5

Re: AHK: Цикличный вывод и повтор текста от точки до точки

awtorizator пишет:

знать бы как

Вопросы типа «напишите мне скрипт» обычно предлагается задавать в коммерческом разделе, за исключением вариантов, когда тема покажется кому-то из участников настолько интересной, что он захочет написать код. В остальных случаях вам для получения адекватной помощи нужно разбить задачу на простейшие составляющие, те из них, что понятны, делаете сами, по тем, что непонятны, задаёте конкретные вопросы, например «как отправить текст в активное окно».

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

6

Re: AHK: Цикличный вывод и повтор текста от точки до точки

teadrinker, понятно, тогда в этой теме можно продолжить? Если да, то  с циклом Loop  можно это сделать? И как сделать условия "до точки" или "до слова с заглавной буквы".

7

Re: AHK: Цикличный вывод и повтор текста от точки до точки

Есть Loop, parse:

text = Abc def. Ghi jkl. Mno pqr.
Loop, parse, text, .
{
   sentense := Trim(A_LoopField, " `r`n")
   MsgBox, % sentense . (sentense = "" ? "" : ".")
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

8 (изменено: dmitry-semin, 2019-09-24 04:36:55)

Re: AHK: Цикличный вывод и повтор текста от точки до точки

currentcount := 0
TestString := "This is a test. Test. Test123."
word_array := StrSplit(TestString, ".")   ; 

F11::
currentcount := currentcount + 1
if (word_array[currentcount] = "")
{
send `r`n
currentcount := 0
}
send % word_array[currentcount]
return

9

Re: AHK: Цикличный вывод и повтор текста от точки до точки

teadrinker, все работает отлично, а как мне еще в синтаксисе добавить знак вопроса и вопрос-восклицание и наоборот? И еще он в конце пустое окно выдает.
dmitry-semin в этом варианте пунктуацию пропускает, если попадается восклицание, то сворачивает окно.

10

Re: AHK: Цикличный вывод и повтор текста от точки до точки

Если разделители разные, тогда немного сложнее, придётся использовать RegexMatch():

text = Abc def. Ghi jkl! Mno pqr?! Stu vwx?

match := ""
while RegExMatch(text, "O)\S.*?[\.\?!]+", match, match ? match.Pos + match.Len : 1)
   MsgBox, % match[0]
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

11

Re: AHK: Цикличный вывод и повтор текста от точки до точки

teadrinker, теперь все работает как и хотел, еще пара вопросов можно ли задать размеры окна MsgBox самому? И чтобы не тратить время просто так сколько стоит такой скрипт? Можно ответить на майл (в профиле)

12 (изменено: teadrinker, 2019-09-24 22:17:58)

Re: AHK: Цикличный вывод и повтор текста от точки до точки

awtorizator пишет:

можно ли задать размеры окна MsgBox самому?

Теоретически как-то можно, но проще вместо этого своё окно создать.

И чтобы не тратить время просто так сколько стоит такой скрипт?

Не совсем понял, какой именно. Можно здесь в чат писать (справа вверху страницы кнопка).

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

13

Re: AHK: Цикличный вывод и повтор текста от точки до точки

awtorizator пишет:

по предложениям от точки до точки

awtorizator пишет:

в этом варианте пунктуацию пропускает,

Сам запутал)