Что нового

Случайная строчка из текста

BogomolOF

Новичок
Сообщения
1
Репутация
0
Версия AutoIt: 3.3.14.5

Описание:
Помогите пожалуйста написать код для формы в которой есть две вкладки 1 и 2, в каждой вкладке есть текстовое поле соответственно тоже 1 и 2.
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 442, 192, 124)
$Tab1 = GUICtrlCreateTab(8, 8, 609, 337)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("1txt")
$Edit1 = GUICtrlCreateEdit("", 24, 48, 569, 281)
GUICtrlSetData(-1, "Edit1")
$TabSheet2 = GUICtrlCreateTabItem("2txt")
GUICtrlSetState(-1,$GUI_SHOW)
$Edit2 = GUICtrlCreateEdit("", 24, 48, 569, 281)
GUICtrlSetData(-1, "Edit2")
GUICtrlCreateTabItem("")
$Button1 = GUICtrlCreateButton("кнопка", 8, 360, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $Form1
		Case $Edit1
	EndSwitch
WEnd

Помогите сделать так, что бы при нажатии на кнопку при активной вкладке номер один в текстовом поле1 появлялась случайная строчка из файла 1.txt и соответственно при активной второй появлялась случайная строчка в текстовом окне номер два и бралась она из файла 2.txt

Примечания:
Я не программист :smile: может и есть решения без текстовых файлов, думаю главную суть донёс
 
A

Alofa

Гость
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <File.au3>

$Form1 = GUICreate("Form1", 625, 442, 192, 124)
$Tab1 = GUICtrlCreateTab(8, 8, 609, 337)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("1txt")
$Edit1 = GUICtrlCreateEdit("", 24, 48, 569, 281)
GUICtrlSetBkColor(-1, 0xFFFDB5)
$Button1 = GUICtrlCreateButton("кнопка1", 8, 360, 75, 25, $WS_GROUP)
$TabSheet2 = GUICtrlCreateTabItem("2txt")
GUICtrlSetState(-1,$GUI_SHOW)
$Edit2 = GUICtrlCreateEdit("", 24, 48, 569, 281)
GUICtrlSetBkColor(-1, 0xD9FFE3)
$Button2 = GUICtrlCreateButton("кнопка2", 8, 360, 75, 25, $WS_GROUP)
GUICtrlCreateTabItem("")
GUICtrlSetState($TabSheet1, $GUI_SHOW)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
			GUICtrlSetData($Edit1, _FileReadRandomLine(@ScriptDir & '\1.txt'))
        Case $Button2
			GUICtrlSetData($Edit2, _FileReadRandomLine(@ScriptDir & '\2.txt'))
    EndSwitch
WEnd

Func _FileReadRandomLine($sFile)
	Local $sString, $aArray
	If _FileReadToArray($sFile, $aArray) Then $sString = $aArray[Random(1, $aArray[0], 1)]
	Return $sString
EndFunc

BogomolOF сказал(а):
... может и есть решения без текстовых файлов
Уверен что есть.

BogomolOF сказал(а):
... Я не программист :smile:
А я не телепат.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Или так :
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <file.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 442, 192, 124)
$Tab1 = GUICtrlCreateTab(8, 8, 609, 337)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("1txt")
$Edit1 = GUICtrlCreateEdit("", 24, 48, 569, 281)
GUICtrlSetData(-1, "Edit1")
$TabSheet2 = GUICtrlCreateTabItem("2txt")
GUICtrlSetState(-1,$GUI_SHOW)
$Edit2 = GUICtrlCreateEdit("", 24, 48, 569, 281)
GUICtrlSetData(-1, "Edit2")
GUICtrlCreateTabItem("")
$Button1 = GUICtrlCreateButton("кнопка", 8, 360, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$file1=@ScriptDir&'\1.txt'
$file2=@ScriptDir&'\2.txt'

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $Button1
			If GUICtrlRead($Tab1)=0 then
				GUICtrlSetData($Edit1,FileReadLine($file1,Random(1,_FileCountLines($file1))))
			Else
				GUICtrlSetData($Edit2,FileReadLine($file1,Random(1,_FileCountLines($file1))))
			EndIf
    EndSwitch
WEnd
 
Верх