Что нового

Обсуждение AutoIt бета-версий

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
CreatoR
Ок, написал вручную. Переделал свой бывший скрипт. Этот скрипт создаёт новый скрипт содержащий в себе текстовые данные в размере 154 Мб (регулируется в цикле). При удаче скрипт выдаёт сообщение, иначе "Error allocating memory.". При запуске процесс в памяти достигает 1 Гб и вылетает ошибка.
Код:
$filename = StringRegExp(@ScriptDir & '\файл.txt', '(^.*)\\(.*)\.(.*)$', 3)

; генерируем имя нового файла с номером копии на случай если файл существует
$Output = $filename[0] & '\Bin_'
$j = 1
While FileExists($Output & $j & '_' & $filename[1] & '.au3')
	$j += 1
WEnd
$Output &= $j & '_' & $filename[1] & '.au3'

$hFile = FileOpen($Output, 1)
FileWrite($hFile, '$sData=""' & @CRLF)

; Создаём блок 4040 символов
$sText = ''
For $i = 1 To 101
	$sText &= 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm' ; 40 символов
Next

; 3 - Да, 4 - Нет...... 4040 * 40000 = 161600000 символов = 154 Мб
For $i = 1 To 40000
	FileWrite($hFile, '$sData  &= ''' & $sText & '''' & @CRLF) ; записываем блоки по 4040 символов
Next

FileWrite($hFile, @CRLF & "MsgBox(0, 'Успешный старт', 'Yes, Да')")
FileClose($hFile)

MsgBox(0, 'Сообщение',  'Скрипт-файл Bin_' & $j & '_' & $filename[1] & '.au3 создан.')
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Ошибок нет, размер 154 МБ, в памяти 1ГБ. Выдает сообщение. Все ок.
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
inververs
Ну подрегулируй слегка. Я взял величину на порядок ниже указанной в справке. И сделал минимальный размер, который у меня выдаёт ошибку на системе WinXP SP3 x86 при 4 Гб памяти. Обновил скрипт, сделав комментарии, чтоб понятно было как выставить размер.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
AZJIO
У меня SciTE зависает с этим скриптом (при открытии).
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
CreatoR
:
Ты бы еще блокнотом открывал


AZJIO
Ошибок не выдает, процессу честно выделяется 2 гигабайта, чтение строки видимо прекращается, появляется msgbox с заголовком autoit только без надписей. (хотя сам файл был 4 гигабайта)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
AutoIt 3.3.9.0 (бета)
#2003: ProcessWaitClose() вызывает большую нагрузку на процессор.
А я-то думал, почему простенький скрипт нагружает процессор i7 аж на 1-2%
Перекомпилировал в последней бете - действительно, теперь загрузка 0%.
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
AutoIt v3.3.9.7 Beta
В связи с тем что регулярные выражения теперь использует Юникод, флаг (?i) поддерживает кириллицу
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Здравствуйте, помогите разобраться с редактором SciTe:
установил beta 3.3.9.7 и через редактор не получается запустить такой код:
Код:
$fd=MsgBox
$fd(0,'','')

Хотя через обычный проводник(explorer) запускается и все нормально.
OffTopic:
По логу в редакторе понятно что запускает он через не "бету", а через оффициальную(3.3.8.1)

Может быть заменить запускаемые файлы(такие как au3check.exe и autoit3.exe) у 3.3.8.1 на 3.3.9.7 . Или можно решить как ни будь другим способом?
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
MnM
MnM сказал(а):
Вот такие варианты:
Код:
Local $fd[1], $a

$fd[0] = MsgBox(0,'','1')
Call($fd)

$z = MsgBox(0,'', '2')
Call($z)

$d = MsgBox(0,'', '3')
Execute($d)

Assign($a, MsgBox(0,'', '4'))
Eval($a)

$fz="MsgBox"
$fz&="(0, '', '5')"
Execute($fz)
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
MnM [?]
через редактор не получается запустить такой код:
Там должен быть пункт запуска бета версии.
Можно ещё так сделать:
Код:
#AutoIt3Wrapper_Autoit3Dir=C:\AutoIt_Beta
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
ivsatel [?]
Вот такие варианты:
Все кроме последнего - неправильные.
Речь идёт о бета, где реализованы указатели функции.
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
MnM [?]
и через редактор не получается запустить такой код

Такая же проблема, запускается только по двойному щелчку по исходнику.


CreatoR [?]
MnM [?]Цитата
через редактор не получается запустить такой код:
Там должен быть пункт запуска бета версии.
Можно ещё так сделать:Код: AutoIt
Код:
#AutoIt3Wrapper_Autoit3Dir=C:\AutoIt_Beta

Тоже не помогло

P.S. и это наверное не указатели на функции, а типа ссылок, так как такой код не работает

Код:
DllCallAddress('none', test)

Func test()
	MsgBox(0, '', '')
EndFunc


и если это действительно что - то вроде ссылок, то лично я в них ни какого смысла не вижу.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Добавили
Код:
_ArrayTranspose

А лучше добавили что-то вроде _ArrayRotate
http://www.autoitscript.com/forum/topic/137523-convert-array/#entry962953
как более универсальное решение
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Появился AutoIt v3.3.9.8 (Beta), я вот не пойму, зачем из-за незначительных изменений выпускать новую версию и тоже Beta, нужно было хотя бы AutoIt v3.3.9.7 довести до Release, а потом браться за новую, кто же будет Beta версиями пользоваться, получается что на данный момент самые стабильные v3.3.6.1, v3.3.8.0, v3.3.8.1, а остальные все Beta...
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Viktor1703
Поживи на офсайте годик, увидишь как этот процесс происходит. После v3.3.6.1 появилась версия v3.3.7.0 - v3.3.7.22, точно не помню, примерно 20 версий было выпущено за короткий срок на время теста и потом заключительная версия v3.3.8.0. Статус их был "бета". На это время исправлялась справка, отписывались по функциям, то есть это рабочий процесс подведения итогов за прошедший год.
Мы вчера с guinness пол-дня справку шерстили, то что я год отписывал частично удалось обновить.
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
AZJIO

Я понимаю что не всё можно заметить и некоторое упустить пока пишешь новую версию, а потом находишь эти ошибки и приходится выпускать новую версию, хотя бы делали бы так

AutoIt_v3.3.9.7_xx1
AutoIt_v3.3.9.7_xx2 - с фиксами
AutoIt_v3.3.9.7_xx3 - с фиксами
....
AutoIt_v3.3.9.7_release

просто получается что скачем сразу через несколько версий как например с AutoIt v3.3.6.1 сразу на AutoIt v3.3.8.0, между ними только бетки... а изменилось только то что убрали некоторые ошибки и добавили новую функцию

Код:
ObjCreateInterface()


и кстати ObjCreateInterface и DllCallAddress до сих пор

Внимание: эта возможность присутствует только для теста. Она может не работать, содержать баги и может быть изменена в будущем без какого-либо предварительного уведомления.

НЕ ПРИСЫЛАЙТЕ СООБЩЕНИЯ ОБ ОШИБКАХ ИЛИ ПРОСЬБЫ ОБ ИЗМЕНЕНИИ ФУНКЦИОНАЛА.

ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК.
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Верх