Что нового

А ведь правда ! =)

FlatX007

Tattoo!
Сообщения
197
Репутация
35
Код:
GUICreate("", 543, 450)
GUISetFont(20, 800, 0, "MS Sans Serif")
GUISetBkColor(0xFFFFFF)
$Label1 = GUICtrlCreateLabel("", 8, 15, 523, 350)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlCreateLabel("Правда ведь =) !", 136, 344, 266, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)

$sBinari = '0xCFEE20F0E7E5EBF3EBFCE0F2F2E0EC20E8EBF1F1E5EEE2E0E4EDE8E920EEE4EEEDE3EE20E0EDEBE8E3E9F1EEEAE3EE20F3EDE2E8E5F0F2E8F1E5F2E02C20EDE520E8E5E5ECF220E7E0EDF7EDE5E8FF2C20E220EAEEEAE0EC20EFF0FFEEEAE4E520F0F1E0EFEEE6EEEBE5EDFB20E1EAF3E2FB20E220F1EEEBE2E52E20C3E0EBE2EEEDE52C20F7EEF2E1FB20EFF0E5E0E2FF20E820EFF1EBEEE5EDE4FFFF20E1EAE2F3FB20E1EBFBE820EDE020ECF1E5F2E52E20CEF1E0F2FCEBFBEDE520E1EAF3E2FB20ECE3EEF3F220F1E5EBE4EEE2F2E0FC20E220EFEBEEEEEDEC20E1F1E5EFEEF0E4FFEAE52C20E2F1E52DF0E2E0EDEE20F2EAE5F1F220F7F2E0E8F2F1E5FF20E1E5E720EFEEE1F0E5EBEC2E20CFE8F7F0E8EEEDE920FDE3EEF2EE20FFEBE2FFF2E5F1FF20F2EE2C20F7F2EE20ECFB20EDE520F7E8E0F2E5EC20EAE4E0F3E6FE20E1EAF3E2F320EFEE20EEF2E4EBFCE5EDEEF2F1E82C20E020E2F1E520F1EEEBE2EE20F6EBE8EAE5EEEC'
GUICtrlSetData($Label1, BinaryToString($sBinari))

GUISetState()

Do
Until GUIGetMsg() = -3
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
На этом принципе основано скорочтение. Хотя, я запнулся на пару слов. Видимо есть ещё кое-какие критерии, которые на бессознательном уровне заставляют контролировать правильность написания слов.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
FlatX007
Симпатично. :laugh:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Я когда впервые увидел это “иследование”, тоже пошёл сразу писать скрипт по теме, но такой, который бы гинерировал из указанного текста вот такую следственную непонятную кашу, вот собственно скрипт:

Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <UpDownConstants.au3>
#include <ButtonConstants.au3>

;~ $Words_String = "According to the results of studies of one English university, " & _
;~ 				"it does not matter in what order the letters are in the word. " & _
;~ 				"The main thing is that the first and last letters were on they places. " & _
;~ 				"Other letters can be fully disorder, " & _
;~ 				"you can still able to read the text without problems. " & _
;~ 				"The reason for this is that we do not read every letter individually, but all the word entirely."

$Words_String = "По результатам исследований одного английского университета, не имеет значения, " & _
				"в каком порядке расположены буквы в слове. Главное, чтобы первая и последняя буквы были на месте. " & _
				"Остальные буквы могут следовать в полном беспорядке, все равно текст читается без проблем. " & _
				"Причиной этого является то, что мы не читаем каждую букву по отдельности, а все слово целиком."

$GUI = GUICreate("Words Transformer", 500, 300)

GUICtrlCreateLabel("Type something bellow and hit the 'Transform' button.", 20, 10)

$Words_Edit = GUICtrlCreateEdit($Words_String, 20, 40, 460, 180, BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL))
GUICtrlSetFont(-1, 12)

GUICtrlCreateLabel("Type Number of characters to keep in place:", 20, 231)
$CharsPreserv_Input = GUICtrlCreateInput(2, 250, 230, 40, 18, $ES_READONLY)
GUICtrlCreateUpdown(-1, $UDS_ARROWKEYS)
GUICtrlSetLimit(-1, 5, 1)

$TransformWords_Button = GUICtrlCreateButton("Transform", 20, 260, 80, 20, BitOr($GUI_SS_DEFAULT_BUTTON, $BS_DEFPUSHBUTTON))
$ResetEdit_Button = GUICtrlCreateButton("Reset to defaults", 110, 260, 120, 20)
$Close_Button = GUICtrlCreateButton("EXIT", 240, 260, 80, 20)

ControlFocus($GUI, "", $TransformWords_Button)

GUISetState(@SW_SHOW, $GUI)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE, $Close_Button
			Exit
		Case $ResetEdit_Button
			GUICtrlSetData($Words_Edit, $Words_String)
			GUICtrlSetData($CharsPreserv_Input, 2)
		Case $TransformWords_Button
			Local $sEdit_Read = StringFormat(GUICtrlRead($Words_Edit))
			Local $iCharsPreserv_Read = Number(GUICtrlRead($CharsPreserv_Input))
			
			If $iCharsPreserv_Read < 1 Then $iCharsPreserv_Read = 1
			
			GUICtrlSetData($Words_Edit, TransformWords_Proc($sEdit_Read, $iCharsPreserv_Read))
	EndSwitch
WEnd

Func TransformWords_Proc($sWords_String, $iCharsPreserv=1)
	If StringStripWS($sWords_String, 8) = "" Then Return SetError(1, 0, $sWords_String)
	
	Local $sRet_Words_String = "", $iLastCharIsDot = (StringRight($sWords_String, 1) = ".")
	Local $sFirst_Chars, $sLast_Chars, $sMidle_Chars, $iStringLen
	
	Local $aSplit_Words = StringRegExp($sWords_String & ".", "([а-я-А-Я\w']+).*?([\s\?\.:;,!]).*?", 3)
	
	For $i = 0 To UBound($aSplit_Words)-1
		$iStringLen = StringLen($aSplit_Words[$i])
		
		If $iStringLen <= $iCharsPreserv+1 Or ($iCharsPreserv * 2) > $iStringLen Then
			$sRet_Words_String &= $aSplit_Words[$i]
			
			If StringRegExp($aSplit_Words[$i], "[\?\.:;,!]") Then $sRet_Words_String &= " "
			
			ContinueLoop
		EndIf
		
		$sFirst_Chars = StringLeft($aSplit_Words[$i], $iCharsPreserv)
		$sLast_Chars = StringRight($aSplit_Words[$i], $iCharsPreserv)
		$sMidle_Chars = StringTrimRight(StringMid($aSplit_Words[$i], $iCharsPreserv+1), $iCharsPreserv)
		
		$sRet_Words_String &= $sFirst_Chars & _StringRandomize($sMidle_Chars) & $sLast_Chars
	Next
	
	$sRet_Words_String = StringStripWS($sRet_Words_String, 3)
	If $sRet_Words_String = "" Then Return $sWords_String
	
	If Not $iLastCharIsDot And StringRight($sRet_Words_String, 1) = "." Then Return StringTrimRight($sRet_Words_String, 1)
	
	Return $sRet_Words_String
EndFunc

Func _StringRandomize($sString)
	If StringLen($sString) = 0 Then Return SetError(1, 0, "")
	
	Local $aStr = StringSplit($sString, ''), $iRandom, $sTemp, $sRet_Str = ''
 
	For $i = 1 To $aStr[0]
		$sTemp = $aStr[$i]
		
		If $i <> $aStr[0] Then
			$iRandom = Random($i, $aStr[0], 1)
		Else
			$iRandom = $aStr[0]
		EndIf
		
		$aStr[$i] = $aStr[$iRandom]
		$aStr[$iRandom] = $sTemp
		$sRet_Str &= $aStr[$i]
	Next
	
	Return $sRet_Str
EndFunc
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Я должен заметить, что в этих теста буквы стоят далеко не в беспорядке. Как правило, совпадают не только первая и последняя, но гораздо больше букв стоят на своих местах. Для чистоты эксперимента необходим скрипт, который гарантированно меняет положение букв в слове.
 

Viktor217

Осваивающий
Сообщения
233
Репутация
31
Лет пять назад уже сталкивался с этой приколкой, прочитал первый раз без проблем, на второй раз запнулся и всё понял(=
Сейчас смог нормально прочитать только со второго раза...
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Секрет прост - если мне покажут животное, прикрытое материей,
но с одной стороны у него будет торчать хобот, а с другой - хвост,
то я сразу догадаюсь, что это слон! :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Suppir
а вдруг мамонт ;D
 
Верх