Что нового

Генератор повторяющихся строк текста

Статус
Закрыто для дальнейших ответов.

lemonia

Новичок
Сообщения
126
Репутация
0
Версия AutoIt: 3.3.12.0
Описание:
В одном месте вставляю блок текста, например:
chinese leaf китайская капуста
chives шнитт-лук; резанец
cob початок

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

Получаю файл с текстом:

месте скрипта вставляю блок текста, например:
chinese leaf китайская капуста
chives шнитт-лук; резанец
cob початок

месте скрипта вставляю блок текста, например:
chinese leaf китайская капуста
chives шнитт-лук; резанец
cob початок

месте скрипта вставляю блок текста, например:
chinese leaf китайская капуста
chives шнитт-лук; резанец
cob початок

месте скрипта вставляю блок текста, например:
chinese leaf китайская капуста
chives шнитт-лук; резанец
cob початок
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
lemonia,
Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
;~ #include <WinAPIEx.au3>
#include <WinAPIShPath.au3>
#include <String.au3>
#include <GuiEdit.au3>

Opt('TrayMenuMode', 1)
Opt('MustDeclareVars', 1)

Global $hGUI, $hEdit, $iInput, $iBtn, $sFileName, $sTxt, $iCount

$hGUI = GUICreate('Repeat Text', 300, 215)
GUICtrlCreateEdit('', 10, 10, 280, 100)
$hEdit = GUICtrlGetHandle(-1)
$iInput = GUICtrlCreateInput('', 40, 130, 80, 20, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER, $ES_CENTER))
_GUICtrlEdit_SetCueBanner($iInput, 'Repeat count')
$iBtn = GUICtrlCreateButton('Save', 170, 120, 80, 40)
GUISetState()
GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND')

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $iBtn
			$sTxt = _GUICtrlEdit_GetText($hEdit)
			If Not $sTxt Then
				TrayTip('Repeat Text', 'Edit is empty.', 3, 3)
				AdlibRegister('_Kill_TrayTip', 5000)
				ContinueLoop
			EndIf
			$iCount = Int(GUICtrlRead($iInput))
			If Not $iCount Then
				TrayTip('Repeat Text', 'Repeat count can not be 0', 3, 3)
				AdlibRegister('_Kill_TrayTip', 10000)
				ContinueLoop
			EndIf
			$sFileName = _WinAPI_PathYetAnotherMakeUniqueName(@ScriptDir & '\RepeatFile.txt')
			FileWrite($sFileName, _StringRepeat($sTxt & @CRLF, $iCount))
			TrayTip('Repeat Text', 'Save repeat text to ' & $sFileName, 3, 1)
			AdlibRegister('_Kill_TrayTip', 5000)
			GUICtrlSetData($iInput, '')
			_GUICtrlEdit_SetText($hEdit, '')
			$sFileName = ''
			$sTxt = ''
			$iCount = 0
	EndSwitch
WEnd

Func _WM_COMMAND($h_Wnd, $i_Msg, $i_wParam, $i_lParam)
	Switch BitAND($i_wParam, 0xFFFF) ; _WinAPI_LoWord
		Case $iInput
			Switch BitShift($i_wParam, 16) ; _WinAPI_HiWord
				Case $EN_CHANGE
					Local $s_Txt = GUICtrlRead($iInput)
					If ($s_Txt) And (Not StringIsDigit($s_Txt)) Then
						GUICtrlSetData($iInput, '')
						TrayTip('Repeat Text', 'Only numbers.', 3, 3)
						AdlibRegister('_Kill_TrayTip', 5000)
					EndIf
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>_WM_COMMAND

Func _Kill_TrayTip()
	AdlibUnRegister('_Kill_TrayTip')
	TrayTip('', '', 0)
EndFunc   ;==>_Kill_TrayTip

Func _GUICtrlEdit_SetCueBanner($hWnd, $sText)
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
	Local $tText = _WinAPI_MultiByteToWideChar(String($sText))
	Return _SendMessage($hWnd, $EM_SETCUEBANNER, False, $tText, 0, "wparam", "struct*") = 1
EndFunc   ;==>_GUICtrlEdit_SetCueBanner
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Вариант попроще.
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate(@ScriptName, 623, 449, -1, -1)
$Edit1 = GUICtrlCreateEdit("", 10, 11, 601, 385, BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
$Input1 = GUICtrlCreateInput("10", 98, 414, 41, 21)
$Button1 = GUICtrlCreateButton("Создать", 536, 412, 75, 25)
$Label1 = GUICtrlCreateLabel("Кол. повторов:", 16, 416, 79, 17)
$Label2 = GUICtrlCreateLabel("Файл:", 155, 416, 36, 17)
$Input2 = GUICtrlCreateInput("myfile.txt", 195, 414, 121, 21)
GUISetState(@SW_SHOW)

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

	EndSwitch
WEnd


Func _CreateRepeat()

	Local $sTmpStr = ''
	$sText = GUICtrlRead($Edit1)

	For $i = 1 To GUICtrlRead($Input1)
		$sTmpStr &=StringFormat('%s\r\n\r\n', $sText)
	Next

	$hFile = FileOpen(StringFormat('%s\%s', @ScriptDir, GUICtrlRead($Input2)), 2)
	FileWrite($hFile, StringStripWS($sTmpStr, 2))
	FileClose($hFile)

	MsgBox(64, @ScriptName, 'Файл создан!')
EndFunc ;==>_CreateRepeat
 
Автор
L

lemonia

Новичок
Сообщения
126
Репутация
0
Спасибо. А куда вставлять текст и количество повторов где указывать?
 

ivanius

Знающий
Сообщения
74
Репутация
5
скомпилируйте или хотябы запустите скрипт)))
 
Автор
L

lemonia

Новичок
Сообщения
126
Репутация
0
:laugh: Это замечательно :IL_AutoIt_1:!
Представляю вашему вниманию методику зазубривания английских слов.

http://avt-lab.ru/dictionary.htm, отсюда можно брать слова с переводом.
Внизу страницы есть тематические словари с 1 по 35 (а далее ссылки не рабочие на данный момент). Редактировать можно, перетащив файл в Блокнот Windows например или переименовав в txt.

Здесь берем голосовой движок:
http://tiflo.info/rhvoice/packages/Windows/0.4-a2/RHVoice-v0.4-a2-setup.exe

Здесь программа Озвучивания текстов Балаболка:
http://www.cross-plus-a.ru/bportable.html

Выставляем в ней настройки, как на скриншоте (Alan+Elena), после установки голосового движка. Сам пользуюсь более ранней версией, так как она более стабильна при синтезе в звуковой файл больших документов.

669ba5e0030ec6707829d04c5a422859.jpg


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

Перед тем, как заниматься скриптом, помучился несколько часов с разными программами для заучивания. Они не понравились, так как в них не было тематических словарей и в некоторые надо долго вникать, чтобы понять, как с ними работать.

Альтернативным вариантом является запись в файл и зацикливание аудио. Это, если бы не было этого скрипта. В этом случае не на всех карманных плеерах можно зубрить таким образом английский, так как не везде такая функция присутствует (если нужно учить в дороге). Этот вариант с записью в файл не всегда удобен, когда мы рядом с ПК, поэтому теперь мы имеем выбор для разных ситуаций.

Ключевые слова, по которым будут находить эту тему:
изучение иностранных слов 290
методики изучения иностранных слов 43
методы изучения иностранных слов 32
программа +для изучения иностранных слов 30
изучение английских слов 1 898
программа +для изучения английских слов 358
слова +для изучения английского языка 255
изучение английских слов онлайн 134
карточки +для изучения английских слов 108
изучение английских слов +по темам 62
изучение английских слов аудио 57
изучение английских слов онлайн бесплатно 56
изучение английских слов андроид 51
приложение +для изучения английских слов 44
игры +для изучения английских слов 42
английский +для детей изучение слов 41
быстрое изучение английских слов 36
методы изучения английских слов 36
изучение слов английского языка онлайн 34
изучение английских слов +с произношением 32
методика изучения английских слов 29
изучение английских слов видео 29
картинки +для изучения английских слов 28
тренажер +для изучения английских слов 25
сайт +для изучения английских слов 24
изучение английского слова самостоятельно алфавит 19
словарь английских слов +для изучения 16
android изучение английских слов 15
наборы слов +для изучения английского 12
 
Автор
L

lemonia

Новичок
Сообщения
126
Репутация
0
Так как с этим голосовым движком слушать слова на английском - не лучший вариант, был найдет альтернативный звуковой синтезатор (без русского):
http://www.microsoft.com/en-us/download/details.aspx?id=10121

Также была найдена программа, в которой можно выставлять отдельно разные голосовые движки для русского и английского. У меня на XP она сразу не заработала, поэтому пришлось почитать, что там написано на странице:
http://kom-pas.narod.ru/audiobook_net.htm

1770047c7c9fc6ba2841957038000441.jpg



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

Сейчас обнаружил, что голоса:
CLB+Irina [Английский (США)]
CLB+Elena [Английский (США)]
при прослушивании в программе Балаболка обладают вполне приятным тембром на английском и русском.


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

Приемы для повышения скорости запоминания английских слов
В книге:
Суперобучение 2000
Шейла Острандер, Линн Шредер, Нэнси Острайдер
Требуется написание специальной темповой музыки классического стиля

Научный подбор правильной продолжительности пауз между повторениями описан в книге:
Методика ускоренного изучения иностранных языков
Рецензенты: М, X. ГАВРИЛОВ, Ш. М. КАЦ, 1990
Найти нужное место в книге пожно по тексту:
Возникает вполне закономерный вопрос, каковы границы паузы, в течение которой нежелательно восприятие какой-либо информации с последующей ее переработкой. При этом, мы повторяем, нежелательно воспринимать даже выученные слова!
В 1913 году Пьерон ответил на этот вопрос. Он предлагал испытуемым заучивать ряд из 18 бессмысленных слогов (чтобы исключить влияние пошлого опыта). Затем он исследовал, сколько раз испытуемые должны были повторять тот же ряд через различные промежутки времени с тем, чтобы восстано­вить в своей кратковременной памяти забытые слоги. Приве­дем его данные в следующей таблице:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
lemonia,
Вопрос решен, тему закрываю.
 
Статус
Закрыто для дальнейших ответов.
Верх