Что нового

Поочередное отправка текста по горячей кнопке

MadDog

Новичок
Сообщения
26
Репутация
0
Подскажите как реализовать следующее.

1. TEST1
2. TEST2
3. TEST3
4. TEST4


Есть горячая кнопка. По её нажатию отправляется сначала фраза с 1 строчки... повторное нажатие горячей кнопки со 2 строчки и т.д.

И тоже самое... но только чтобы отправляемая строчка была выбрана случайным образом... например сначала 3 потом 1 строчка и т.д.
Заранее спасибо
 

edward_freedom

Осваивающий
Сообщения
200
Репутация
44
Код:
#include <File.au3>

$file = "test.txt"
FileOpen($file, 0)

For $i = 1 to _FileCountLines($file)
    $line = FileReadLine($file, $i)
msgbox(0,"", $line)
Next
FileClose($file)


рандом

Код:
#include <File.au3>
$file = "test.txt"
FileOpen($file, 0)
    $line = FileReadLine($file, random(1,4))
msgbox(0,"", $line)
FileClose($file)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
MadDog,
Код:
Global $iCount, $fRandom

HotKeySet('1', '_Show')
HotKeySet('2', '_RandomYesNo')
HotKeySet('{Esc}', '_Exit')

While 1
	Sleep(50)
WEnd

Func _Show()
	Local $iIndex, $aMessage[5] = [4, 'test_11', 'test_12', 'test_13', 'test_14']
	If FileExists(@ScriptDir & '\message.txt') Then
		$aMessage = StringSplit(StringStripCR(StringStripWS(FileRead(@ScriptDir & '\message.txt'), 7)), @LF)
	EndIf
	If $fRandom Then
		$iIndex = Random(1, $aMessage[0], 1)
	Else
		If $iCount = $aMessage[0] Then $iCount = 0
		$iCount += 1
		$iIndex = $iCount
	EndIf
	MsgBox(64, 'Info: ' & $iIndex, $aMessage[$iIndex])
EndFunc   ;==>_Show

Func _RandomYesNo()
	$fRandom = Not $fRandom
EndFunc   ;==>_RandomYesNo

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
MadDog

MadDog

Новичок
Сообщения
26
Репутация
0
madmasles супер.. вот только подскажи как сделать чтобы он текст брал из текстового файла
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
edward_freedom
Почитай справку по FileOpen.

MadDog [?]
как сделать чтобы он текст брал из текстового файла
Заменить:
Код:
$aMessage[5] = [4, 'test_11', 'test_12', 'test_13', 'test_14']

на
Код:
$aMessage = StringSplit(StringStripCR(StringStripWS(FileRead("file.txt"))), @LF)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
Не совсем так.
smiley.gif
Я код поменял.
Так а почему не совсем так, ведь спрашивалось про чтение с файла, ничего про дефолтные значения не упоминалось ;)


Добавлено:
Сообщение автоматически объединено:

P.S
«StringStripWS(..., 7)» удалит двойные пробелы, т.ч строки типа «привет мир» уже потеряют своё значение, а вдруг там пробелы нужны?
 
Автор
MadDog

MadDog

Новичок
Сообщения
26
Репутация
0
всё спасибо сделал сам через хендл
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
У Вас StringStripWS() вообще без флага.
Упс :-[, ну это можно списать на опечатку, т.к код набирал прямо в форме ответа (что очень не свойсьвенно мне), а всё потому что торопился.
 
Верх