Что нового

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

gora

Знающий
Сообщения
315
Репутация
19
Viktor1703 [?]
Перешёл по ссылке, всё работает
Угу, работает. Только обратите внимание на правый верхний угол той английской страницы, где написано, что топик закрыт! Или перейдите в нем на последнюю страницу и посмотрите последние беты в ней.

CreatoR [?]
Вот что я вижу в IE8
http://gora.7zsfx.info/test/dsk.png
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Получается всё это время я просто так оставлял там комментарии? :stars:
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
smile23.gif
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
А теперь?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
CreatoR
Если переводишь извенения в версиях, не лучше ли их писать сразу в файл справки history.htm? И указывать ссылку на этот файл в онлайн-справке?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Вот преобразователь сделал
Код:
#include <Array.au3>
$text1 = FileRead(@ScriptDir&'\history.htm')

$a=StringRegExp($text1, '(?m)^.+? (#\d{3,4}:)(.+?)\r*$', 3)
$c=UBound($a)
Dim $A1[$c/2+1][2] = [[$c/2]]
For $i = 0 To $c-1 Step 2
	$p=Int($i/2)
	$A1[$p+1][0]=$a[$i]
	$A1[$p+1][1]=$a[$i+1]
Next

$text2 = FileRead(@ScriptDir&'\history.txt') ; текст с форума

$a=StringRegExp($text2, '(?m)^.+? (#\d{3,4}:)(.+?)\r*$', 3)
$c=UBound($a)
Dim $A2[$c/2+1][2] = [[$c/2]]
For $i = 0 To $c-1 Step 2
	$p=Int($i/2)
	$A2[$p+1][0]=$a[$i]
	$A2[$p+1][1]=$a[$i+1]
Next

; _ArrayDisplay($A1, 'Array')
; _ArrayDisplay($A2, 'Array')

For $i = 1 To $A2[0][0]
	$iInd = _ArraySearch($A1, $A2[$i][0], 0, 0, 0, 0, 1, 0)
	If Not @error And $iInd<>-1 Then
		If $A1[$iInd][0]=$A2[$i][0] Then ; двойная проверка )))
			$text1 = StringReplace($text1, $A1[$iInd][0]&$A1[$iInd][1], $A2[$i][0]&$A2[$i][1]&'</li>')
		Else
			MsgBox(0, 'Сообщение', $A1[$iInd][0]&@CRLF&$A2[$i][0] )
		EndIf
	EndIf
Next
$text1 = StringRegExpReplace($text1, '<li>Fixed:*', '<li>Исправлено:')
$text1 = StringRegExpReplace($text1, '<li>Changed:*', '<li>Изменено:')
$text1 = StringRegExpReplace($text1, '<li>Added:*', '<li>Добавлено:')
$text1 = StringRegExpReplace($text1, '<li>Removed:*', '<li>Удалено:')

$file = FileOpen(@ScriptDir&'\history2.htm',2)
FileWrite($file, $text1)
FileClose($file)
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
AZJIO [?]
Вот преобразователь сделал
Я не совсем понял твою задумку.

Я в любом случае список изменении буду оставлять на форуме.
Почему бы в справке просто не оставить ссылку на раздел объявлении, написав что там найдутся списки изменении для всех версии?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
CreatoR
Я не совсем понял твою задумку.
Скрипт берёт из текстового файла (скопированное с форума лог изменений) и по номеру тикета делает замены в англоязычном файле справки. Но не у всех обновлений есть номер тикета, поэтому не идеально получается. В справке есть ещё два текстовых файла с подробными изменениями, кроме основного с релизами.

что там найдутся списки изменении для всех версии?
да, autoit_changelog.txt и autoit_changelog_complete.txt в справке это и есть они, только на англ. и ссылки на эти файлы в истории есть.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
AZJIO [?]
да, autoit_changelog.txt и autoit_changelog_complete.txt в справке это и есть они, только на англ. и ссылки на эти файлы в истории есть.
Я про то чтобы в справке на русском оставить ссылку где нибудь сверху, написав типа «Историю версии на русском вы можете найти тут».
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
CreatoR
Проверил конвертацию скриптом по новой ссылке в итоге 2 разных пеервода, даже не пойму какой лучше.

 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
В справке:
Максимальная длина строковой переменной: 2,147,483,647 символов

Пример, показывающий, что 190 Мб вызывают ошибку памяти. Учитывая 2 байта на символ, то 99,614,720 символов.
Код:
$Path = "D:\TmpFile.tmp"
$Size = 190*1024*1024 ; 190 Мб
If FileExists($Path) Then FileDelete($Path)
RunWait(@Comspec&' /C fsutil file createnew "' & $Path & '" ' & $size, '', @SW_HIDE)
If FileExists($Path) Then
	_Open2($Path)
EndIf

Func _Open2($Path)
	$file = FileOpen($Path, 0)
	$Bin=''
	While 1
		$Bin &= FileRead($file, 20 * 1024 * 1024) ; по 20 Мб
		If @error = -1 Then ExitLoop
		Sleep(1)
	WEnd
	FileClose($file)
	MsgBox(0, Round(FileGetSize($Path)/1024/1024, 2)&' Мб', 'О да, смотри')
EndFunc

Func _Open3($Path)
	$file = FileOpen($Path, 16)
	$Bin=''
	While 1
		$Bin &= FileRead($file, 20 * 1024 * 1024) ; по 20 Мб
		If @error = -1 Then ExitLoop
		Sleep(1)
	WEnd
	FileClose($file)
	MsgBox(0, Round(FileGetSize($Path)/1024/1024, 2)&' Мб', 'О да, смотри')
EndFunc

Func _Open($Path)
	; 156 Мб открывается нормально, 182 Мб  -  568 Мб в памяти - даёт ошибку
	; В бинарном режиме 356 Мб нормально; 402 Мб  -  вылет
	$file = FileOpen($Path, 0)
	$text = FileRead($file)
	FileClose($file)
	MsgBox(0, Round(FileGetSize($Path)/1024/1024, 2)&' Мб', 'О да, смотри')
EndFunc
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
AZJIO [?]
Проверил конвертацию скриптом по новой ссылке в итоге 2 разных пеервода
Откуда тот что слева?

И почему ты не хочешь упростить задачу, поместив в справку текст что я написал выше?

[?]
Пример, показывающий, что 190 Мб вызывают ошибку памяти
В справке также написано, что ограничение может быть и ниже.


P.S.
А Возможно речь вовсе не про размер строки, а про длину в литеральном виде, т.е типа так:

Код:
$Var = 'Огромная строка с длиной в 2,147,483,647 символов'
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
2,147,483,647 (4 ГБ в unicode символах) символов это внутреннее ограничение AutoIt, т.е. тип DWORD. На деле же Windows ограничивает любое приложение 2 ГБ памяти.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
CreatoR
И почему ты не хочешь упростить задачу, поместив в справку текст что я написал выше?
Новичок прочитает обновы к бэткам и будет её качать, ради новизны. А в справке релиз. Ну и если файл там уже есть, зачем делать переходы, когда пользователю удобней тут же и читать.

А Возможно речь вовсе не про размер строки, а про длину в литеральном виде, т.е типа так:
В примере тоже в литеральном виде.

Про ограничение 2 Гб на процесс я знаю. Столкнулся с проблемой при поиске нужной мне сигнатуры в EXE-файле с помощю своей программы TextReplace. Она выдала "Error allocating memory." не завершив поиск при размере в памяти 966Мб. Либо мне ставить ограничение на размер дабы завершить поиск успешно, либо разобраться, почему AutoIt не может прочитать 200 Мб в память. Написал на офсайте здесь, предложенная там APITailRW делает крах AutoIt, вариант от Zedna я не разобрался, не вижу там функцию с сигнатурой Read.
 

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
Очень заинтересовали изменения версии 3.3.9.0 и хотелось бы увидеть эти улучшения.
Но не совсем понимаю, что такое бета. Это как мне кажется недоделанная и не готовая к выходу. Или я не прав?

И что будет например при использовании (если можно конечно) версии 3.3.9.4
 
Верх