[Вопрос решен] Измени скрипт который я написал ниже, этот скрипт рандомно...

Измени скрипт который я написал ниже, этот скрипт рандомно выбирает строку из текстового файла 707.txt и пишет её, но из-за того что я быстро жму F1, скрипт пишет два раза одно слово, мне нужно чтобы я быстро нажимал на F1 и скрипт не писал слово повторно.

Реши эту проблему тремя способами

F1::

FileRead, str, 911.txt

StringSplit, lines, str, `n

Random, index, 1, lines0

Clipboard := lines%index%

SendInput, ^v

return

(1) Смотреть решение

Ответ нейросети AfinaAI

Привет!​ Я решил проблему и исправил скрипт для тебя.​ Вот три способа, которые ты можешь использовать⁚

Первый способ⁚
F1⁚⁚
FileRead, str, 707.​txt
StringSplit, lines, str, `n
Random, index, 1, lines0
word ⁚ lines%index%
If (word <> prevWord) ; Проверяем, не совпадает ли текущее слово с предыдущим
{
Clipboard ⁚ word
SendInput, ^v
}
prevWord ⁚ word ; Запоминаем текущее слово для следующей проверки
return

В этом способе я добавил переменную prevWord, в которой будет храниться предыдущее выбранное слово.​ Я проверяю, не совпадает ли текущее слово с предыдущим, и только в этом случае я записываю его в буфер обмена и вставляю с помощью SendInput, иначе ничего не делаю.​Второй способ⁚
F1⁚⁚
FileRead, str, 707.​txt
StringSplit, lines, str, `n
while (1) ; Запускаем бесконечный цикл
{
Random, index, 1, lines0
word ⁚ lines%index%
If (word <> prevWord) ; Проверяем, не совпадает ли текущее слово с предыдущим
{
Clipboard ⁚ word
SendInput, ^v
break ; Выходим из цикла, чтобы остановить выборка слов
}
}
prevWord ⁚ word ; Запоминаем текущее слово для следующей проверки
return

В этом способе я использую бесконечный цикл while(1), чтобы продолжать выбирать новые слова до тех пор, пока не будет найдено слово, которое не совпадает с предыдущим.​ Затем я записываю его в буфер обмена и вставляю его, и затем выхожу из цикла.​Третий способ⁚
F1⁚⁚
FileRead, str, 707.txt
StringSplit, lines, str, `n

Random, index, 1, lines0
word ⁚ lines%index%
wordCount ⁚ lines0
indexArray ⁚ ″″
Loop % wordCount ; Создаем массив индексов для всех слов в файле
indexArray .​ A_Index .​ ″ ″
Loop % wordCount ; Проверяем, не совпадает ли текущее слово с предыдущими
{
Random, newIndex, 1, wordCount
If (InStr(indexArray, newIndex) 0) ; Проверяем٫ что новый индекс не был выбран ранее
{
word ⁚ lines%newIndex%
indexArray ⁚ indexArray . newIndex ; ″ ″
Clipboard ⁚ word
SendInput, ^v
break ; Выходим из цикла, чтобы остановить выборку слов
}
}
prevWord ⁚ word ; Запоминаем текущее слово для следующей проверки
return
В этом способе я создаю массив индексов indexArray для всех слов в файле. Затем я выбираю случайный новый индекс, который еще не был выбран, и проверяю, не совпадает ли текущее слово с предыдущими.​ Если нет, то я записываю его в буфер обмена и вставляю его.​
Теперь ты можешь использовать любой из этих способов в своем скрипте и избавиться от повторения одного слова при быстром нажатии на F1.​ Удачи!

Читайте также  Кейс-задача № 2 «Нельзя никого ничему научить, можно только помочь научиться». Существует наука о сущности, закономерностях, принципах, методах и формах обучения и воспитания человека с учетом его индивидуально-возрастных особенностей развития в контексте конкретной педагогической системы. 1) Какое название этой науки? 2) Перечислите пять ключевых целей данной науки и прокомментируйте их.
AfinaAI