Что нового

Развитие русской справки

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
А так?
Функция подготовки поиска. Возвращает дескриптор, в котором сохранены параметры поиска, но сам поиск не производит.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
gora [?]
Но и Ваши предположения
Предположения основаны на точном поведении функции. То что написано то и происходит.

Если автор использует в названии функции слово First,
Автор копирует имя функции WinAPI - FindFirstFile. Функция была написана в доисторические времена. Можно предположить что даже спецы не всегда адекватно сразу могут назвать функцию идеально. Способ формата имён может быть усовершенствован по разным критериям.

А почему не может быть, что этот указатель действительно указывает на первый файл,
Потому что профессионал делает операцию когда затребует пользователь, а не подготавливает её заранее, с вероятностью не использования. Если мы будем следовать этой политике, то мы просто тратим в пустую ресурсы процессора. Мы же пытаемся снизить ресурсо-ёмкость функции считая его важным критерием. Если предположить что функция FileFindFirstFile ищет первый файл, а FileFindNextFile на первом вызове стоит на месте, возвращая текущее, а на втором шаге начинает искать, то это нелогичный / неправильный цикл. Цикл должен искать на каждом шаге а не прописывать для каждого шага особые условия. Это будет уже не цикл.
2. Когда-то Nikzzzz написал функцию поиска, а CreatoR высказал что было бы не плохо избавиться от глобальных переменных. Через некоторое время Nikzzzz выложил следующую версию, где первый вызов возвращал массив в котором хранились данные о путях, маске и текущих дескрипторах поиска. А последующая функция просто обновляла в нём инфу записывая последние данные, а пользователю возвращалось имя файла, в конце нужно было "закрыть" массив очисткой. Это и является аналогом нативной функции и понимание что такое дескриптор. Почему надо делать как то неправильно, Microsoft разбирается хуже Nikzzzz?

А в чем холостой ход?
В том что запрос тратит ресурсы проца. Например мне надо получить первые 5 файлов согласно маске. Зачем функция будет получать шестой если я откажусь. А вдруг мне надо получать по одному файлу в миллионе папок и на каждый ход функция будет подготавливать второй файл? То есть в 2 раза увеличить ресурсо-ёмкость функции для данной задачи? Каждый вызов проверяет по маске, например в папке 2000 файлов следующий файл с тем же расширением в конце, зачем функция будет шерстить 2000 файлов чтобы получить то что не требуется?



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

inververs [?]
Там не должно быть несколько предложений. О том что возвращает написано в таблице возвращения. Да и слов должно быть минимально, а смысла максимально.



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

gora [?]
должна возвратить ошибку, если указанного файла (файлов) не существует. А не имея указателя на этот файл проверить его существование все равно не удастся. Значит ход не холостой, а вынужденный.
Про -1 это да, значит он делает первый поиск. Но предложенное мной описание не противоречит и этому критерию.
Значит функция FileFindFirstFile вызывает однократно FileFindNextFile ради проверки ошибки. Ведь один файл мы всё равно намеревались получить. Сам механизм поиска не должен быть в FileFindFirstFile, так как если бы FileFindNextFile активировал бы триггером, то FileFindFirstFile нужно было бы крутить цикл проверки сообщений. Думаю это не так. То есть моё предположение о том что FileFindFirstFile возвращает дескриптор хранящий позицию и параметры поиска остаётся актуальным.



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

FileOpen
Добавлено
Файл может не открыться из-за прав доступа и/или его атрибутов (R для флага 1, RSH для 2).
Если в англ справке урезали конкретные атрибуты, то я уточнил более конкретно.
Код:
#include <File.au3>

$sPath = @ScriptDir & '\Test.txt'
_FileCreate($sPath)
MsgBox(0, 'Флаги', _Test($sPath))
FileDelete($sPath)

Func _Test($sPath)
	Local $hFile, $sRet, $Ret = ''
	$aAtr = StringSplit('RSHAT', '')

	For $i = 0 To 2
		$sRet &= $i & ' = '; Добавляем тестируемый флаг
		For $j = 1 To 5
			FileSetAttrib($sPath, '-RSHAT') ; сбрасываем все атрибуты
			FileSetAttrib($sPath, '+' & $aAtr[$j]) ; устанавливаем заданный атрибут
			$hFile = FileOpen($sPath, $i)
			If $hFile = -1 Then $sRet &= FileGetAttrib($sPath) ; Если не удалось открыть, добавляем текущий атрибут файла к флагу.
			FileClose($hFile)
		Next
		$sRet &= @CRLF ; завершаем переносом для следующего флага
	Next
	Return $sRet
EndFunc   ;==>_Test


В FileGetTime добавил названия этих же полей, как в свойствах файла. Были сомнения, теперь проверил и уточнил.
В FileCopy уточнил, что функция не работает рекурсивно, хотя по использованию маски хочется сделать это предположение. Хотя многие используют маску и также не рекурсивно работают (FileMove, FileDelete и т.д.). А другие наоборот рекурсивно (FileSetAttrib, FileSetTime, DirRemove).

В FileRecycle указано
Чтобы удалить папку, следует указывать её путь без обратного слеша в конце.
но и со слешем удаляет. Не понял тогда смысла.

В FileDelete уточнил об ошибке
Ошибка: Возвращает 0, если не все файлы были удалены или не существуют.
Половина удалит, но напишет ошибка и как её интерпретировать?

В DirCreate уточнил возвращающие параметры. Например папка уже существует, и возвращает ошибку. Считать ли ошибкой создание уже существующего каталога? Нет, потому исправлено.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Обновил промежуточные версии файлов. Обновлены некоторые скрины до Win8.1

Добавить в пользовательский раздел статью о циклах?
 

Pat4005

Новичок
Сообщения
85
Репутация
4
AZJIO, в версии 3.3.12.0 слегка изменились имена Excel-функций. Это ведь должно отражаться в справке или это справка только по 3.3.8.1?


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

AZJIO сказал(а):
Добавить в пользовательский раздел статью о циклах?
Да, добавляйте.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Pat4005
Подробнее...
или это справка только по 3.3.8.1?
На главной странице "Введение" указана версия справки. Да 3.3.8.1
AZJIO, в версии 3.3.12.0 слегка изменились
Там много чего изменилось, и я об этом знаю. Конкретно функциями Excel никогда не пользовался и переводил этот раздел не я. Максимум была идея добавить некоторые обновы с пометкой что страница принадлежит версии 3.3.12.0, например Null, хотя будет много путаницы.
 

Geralld

Новичок
Сообщения
7
Репутация
0
Столкнулся с ситуацией, когда в русской справке не хватает описания некоторых функций, например, _ArrayColDelete, _ArrayColInsert из UDF в Array Management. Подскажите, в русской справке умышленно пропущены непереведенные функции или это просто "отставание" по обновлению русской справки от оригинала?
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
CreatoR
Онлайн справка отображается в квадратиках. Там кодировка указана windows-1251, а страница наверно в UTF-8. Например ucoz автоматически конвертирует файл в UTF-8 и нужно заранее указать эту кодировку и преобразовать все файлы.

Geralld
Прочти пост предыдущий
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Обновлены AutoIt3.chm и CustomUDFs.chm.
В AutoIt3.chm добавлена страница "От переводчика"
В CustomUDFs.chm добавлены GUIFinder и MemFont

В функции StringCompare предлагаю замены:
Описание:
Сравнивает две строки в лексикографическом порядке
Примечание:
Подробнее о лексикографическом порядке смотрите в Операторы, последний абзац. Особенность в отличии от оператора "=" состоит в том, что при поиске в сортированном массиве даже при отсутствии совпадения строк часть массива можно не проверять, так как в позиции наибольшего совпадения происходит смена знака возвращаемого значения.

Полный комплект обновлён http://rghost.ru/56798892

Английская оригинальная (v3.3.13.2) с чёрной темой - http://rghost.ru/56860880
 

Skif_off

Знающий
Сообщения
173
Репутация
13
Прошу прощения, если не туда, более подходящей темы не нашел (или проглядел, ибо с телефона): ссылка на функцию DllCall со страницы http://autoit-script.ru/autoit3_docs/libfunctions/_sendmessage.htm неправильная -
http://autoit-script.ru/autoit3_docs/libfunctions/autoit3.chm../functions/dllcall.htm
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Skif_off
Я уже отписал CreatoR'у в личку об этом после обновления онлайн обработчика CHMtoOnLine.7z
 

eus_deus

Новичок
Сообщения
118
Репутация
0
после обновления автоита и справки скрипт ругается на инклуд array.au3/ Мол, какая то незадекларированая переменная
 

eus_deus

Новичок
Сообщения
118
Репутация
0
AZJIO, он (скрипт) ругается на строку 1653 файла array.au3
Код:
Switch UBound($avArray, $UBOUND_DIMENSIONS)

По крайней мере на эту сразу. Есть там и другие подобные строки. Скрипт вообще не запускается - сразу ошибка. Скорее всего, это после обновления на 3.3.16.6. Не знаю, что делать, буду наверное откатываться назад. Бана не хочу, потому в тему по справке больше писать не буду. Написал в нее вчера, так как не выяснил еще тогда, что именно повлекло такое поведение
 

Tyonas

Новичок
Сообщения
4
Репутация
1
На azjio.narod.ru справка не отображается (http://azjio.narod.ru/autoit3_docs/menu/functions.htm).
На autoit-script.ru у справки проблемы с кодировкой (http://autoit-script.ru/autoit3_docs/menu/functions.htm), пользоваться невозможно.
Справка из архива не работает, пишет "Переход на веб-страницу отменен".
Пробовал с v3.3.12.0 и 3.3.8.1. Стандартная справка работает.

Скиньте пожалуйста рабочие файлы) вообще ведь без справок оставили
 

gora

Знающий
Сообщения
315
Репутация
19
Вот это переводить не надо:
Email : support at autoitscript dot com
ибо это Емайл записанный таким, "противоботовым" способом.
В русском варианте это уже не Емайл и получить из этого Емайл почти невозможно:
Электронная почта : служба поддержки на autoitscript точка ком
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Tyonas
Распакуй CHM архиватором 7zip и будет работать вариант на js скриптах в браузере, тот что с деревом слева.
Мало информации о причинах. Попробуй собрать справку распакованную 7zip, с помощью htm2chm, делая какие нибудь модификации, например вставив оригинальный стилевой файл или заменив TOC - содержание (дерево) или заменив первую строку в каждой HTML-странице.

вообще ведь без справок оставили
Она работала? Предыдущая версия? Я в последней делал модификации стиля, чтобы не было некоторых привязок. Например для онлайн справки надо было изменять размер шрифтов. Чтобы не было зависимости указал размер в "em" и в первой строке HTML-страниц менял. А то получалось что так что у тебя бы работало, а для большинства людей в онлайн справке наблюдалась бы проблема с мизерным шрифтом.

Ту справку что я делал на narod'е, которая перекочевала на ucoz имеется проблема с js скриптами, я её не решил. Если решиш и предложишь решение, то появится и там вариант с деревом слева. Хотя из-за появившейся рекламы (на narod'е не было) особо нет смысла справки на том ресурсе.
 

gora

Знающий
Сообщения
315
Репутация
19
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
Всё-таки есть некая стандартизация. Например на Linux при открытии справок CHM с помощью KchmViewer и xCHM соблюдаются все стили для python278.chm и оригинальной AutoIt.chm, а в русской справке то css не видит, то дерево не отображается, приходится через Wine пользоваться. Но в Wine не работают вкладки "Поиск" и "Указатель". Так что есть заинтересованность это исправить. Возможно дерево придётся конвертировать в мнемокод.
 

Pat4005

Новичок
Сообщения
85
Репутация
4
В одном из параметров функции _GUICtrlComboBoxEx_AddString опечатка. Стоит $iSelecteImage, а должно быть, скорее всего, $iSelectedImage.
 
Верх