Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Автор копирует имя функции WinAPI - FindFirstFile. Функция была написана в доисторические времена. Можно предположить что даже спецы не всегда адекватно сразу могут назвать функцию идеально. Способ формата имён может быть усовершенствован по разным критериям.
А почему не может быть, что этот указатель действительно указывает на первый файл,
Потому что профессионал делает операцию когда затребует пользователь, а не подготавливает её заранее, с вероятностью не использования. Если мы будем следовать этой политике, то мы просто тратим в пустую ресурсы процессора. Мы же пытаемся снизить ресурсо-ёмкость функции считая его важным критерием. Если предположить что функция FileFindFirstFile ищет первый файл, а FileFindNextFile на первом вызове стоит на месте, возвращая текущее, а на втором шаге начинает искать, то это нелогичный / неправильный цикл. Цикл должен искать на каждом шаге а не прописывать для каждого шага особые условия. Это будет уже не цикл.
2. Когда-то Nikzzzz написал функцию поиска, а CreatoR высказал что было бы не плохо избавиться от глобальных переменных. Через некоторое время Nikzzzz выложил следующую версию, где первый вызов возвращал массив в котором хранились данные о путях, маске и текущих дескрипторах поиска. А последующая функция просто обновляла в нём инфу записывая последние данные, а пользователю возвращалось имя файла, в конце нужно было "закрыть" массив очисткой. Это и является аналогом нативной функции и понимание что такое дескриптор. Почему надо делать как то неправильно, Microsoft разбирается хуже Nikzzzz?
В том что запрос тратит ресурсы проца. Например мне надо получить первые 5 файлов согласно маске. Зачем функция будет получать шестой если я откажусь. А вдруг мне надо получать по одному файлу в миллионе папок и на каждый ход функция будет подготавливать второй файл? То есть в 2 раза увеличить ресурсо-ёмкость функции для данной задачи? Каждый вызов проверяет по маске, например в папке 2000 файлов следующий файл с тем же расширением в конце, зачем функция будет шерстить 2000 файлов чтобы получить то что не требуется?
должна возвратить ошибку, если указанного файла (файлов) не существует. А не имея указателя на этот файл проверить его существование все равно не удастся. Значит ход не холостой, а вынужденный.
Про -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 указано
Чтобы удалить папку, следует указывать её путь без обратного слеша в конце.
Половина удалит, но напишет ошибка и как её интерпретировать?
В DirCreate уточнил возвращающие параметры. Например папка уже существует, и возвращает ошибку. Считать ли ошибкой создание уже существующего каталога? Нет, потому исправлено.
Там много чего изменилось, и я об этом знаю. Конкретно функциями Excel никогда не пользовался и переводил этот раздел не я. Максимум была идея добавить некоторые обновы с пометкой что страница принадлежит версии 3.3.12.0, например Null, хотя будет много путаницы.
Столкнулся с ситуацией, когда в русской справке не хватает описания некоторых функций, например, _ArrayColDelete, _ArrayColInsert из UDF в Array Management. Подскажите, в русской справке умышленно пропущены непереведенные функции или это просто "отставание" по обновлению русской справки от оригинала?
CreatoR
Онлайн справка отображается в квадратиках. Там кодировка указана windows-1251, а страница наверно в UTF-8. Например ucoz автоматически конвертирует файл в UTF-8 и нужно заранее указать эту кодировку и преобразовать все файлы.
Обновлены AutoIt3.chm и CustomUDFs.chm.
В AutoIt3.chm добавлена страница "От переводчика"
В CustomUDFs.chm добавлены GUIFinder и MemFont
В функции StringCompare предлагаю замены:
Описание:
Сравнивает две строки в лексикографическом порядке
Примечание:
Подробнее о лексикографическом порядке смотрите в Операторы, последний абзац. Особенность в отличии от оператора "=" состоит в том, что при поиске в сортированном массиве даже при отсутствии совпадения строк часть массива можно не проверять, так как в позиции наибольшего совпадения происходит смена знака возвращаемого значения.
Полный комплект обновлён http://rghost.ru/56798892
Английская оригинальная (v3.3.13.2) с чёрной темой - http://rghost.ru/56860880
Прошу прощения, если не туда, более подходящей темы не нашел (или проглядел, ибо с телефона): ссылка на функцию DllCall со страницы http://autoit-script.ru/autoit3_docs/libfunctions/_sendmessage.htm неправильная -
http://autoit-script.ru/autoit3_docs/libfunctions/autoit3.chm../functions/dllcall.htm
AZJIO, он (скрипт) ругается на строку 1653 файла array.au3
Код:
Switch UBound($avArray, $UBOUND_DIMENSIONS)
По крайней мере на эту сразу. Есть там и другие подобные строки. Скрипт вообще не запускается - сразу ошибка. Скорее всего, это после обновления на 3.3.16.6. Не знаю, что делать, буду наверное откатываться назад. Бана не хочу, потому в тему по справке больше писать не буду. Написал в нее вчера, так как не выяснил еще тогда, что именно повлекло такое поведение
На 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. Стандартная справка работает.
Скиньте пожалуйста рабочие файлы) вообще ведь без справок оставили
Tyonas
Распакуй CHM архиватором 7zip и будет работать вариант на js скриптах в браузере, тот что с деревом слева.
Мало информации о причинах. Попробуй собрать справку распакованную 7zip, с помощью htm2chm, делая какие нибудь модификации, например вставив оригинальный стилевой файл или заменив TOC - содержание (дерево) или заменив первую строку в каждой HTML-странице.
Она работала? Предыдущая версия? Я в последней делал модификации стиля, чтобы не было некоторых привязок. Например для онлайн справки надо было изменять размер шрифтов. Чтобы не было зависимости указал размер в "em" и в первой строке HTML-страниц менял. А то получалось что так что у тебя бы работало, а для большинства людей в онлайн справке наблюдалась бы проблема с мизерным шрифтом.
Ту справку что я делал на narod'е, которая перекочевала на ucoz имеется проблема с js скриптами, я её не решил. Если решиш и предложишь решение, то появится и там вариант с деревом слева. Хотя из-за появившейся рекламы (на narod'е не было) особо нет смысла справки на том ресурсе.
Всё-таки есть некая стандартизация. Например на Linux при открытии справок CHM с помощью KchmViewer и xCHM соблюдаются все стили для python278.chm и оригинальной AutoIt.chm, а в русской справке то css не видит, то дерево не отображается, приходится через Wine пользоваться. Но в Wine не работают вкладки "Поиск" и "Указатель". Так что есть заинтересованность это исправить. Возможно дерево придётся конвертировать в мнемокод.