Что нового

Окна, Диалоги Пасхалка в функции FileSelectFolder()

Oki

Продвинутый
Сообщения
452
Репутация
62
Версия AutoIt
3.3.14.5
Версия
0.0
Понадобилось мне для функции FileSelectFolder() получить имя папки по известному имени файла в ней. Для этого можно применить либо регулярное выражение, либо стандартные текстовые функции для отрезания имени файла из пути, но у меня появилась гипотеза о существовании следующей пасхалки, которая подтвердилась тестом: в функции FileSelectFolder() можно вместо имени папки указать имя любого файла в ней.
Код:
$sFileIn = FileOpenDialog("Select an input file", @ScriptDir, "All (*.*)|Txt (*.txt)")
$sFolderOut = FileSelectFolder("Select a folder for results", $sFileIn, 7)
MsgBox(4096, "", $sFolderOut)
Поскольку в справке такой функционал не описан, то это пасхалка.
Сообщение автоматически объединено:

Та же история, похоже, со всеми стандартными функциями языка, требующими пути к папке.
Код:
$sFileIn = FileOpenDialog("Select an input file", @ScriptDir, "All (*.*)|Txt (*.txt)")
$hFileIn = FileOpen($sFileIn)
$sFileOut =FileSaveDialog("Select an output file", $sFileIn, "All (*.*)|Txt (*.txt)")
$hFileOut = FileOpen($sFileOut, 2)
Этот фрагмент корректно работающего скрипта демонстрирует, как для выбора папки во втором диалоге сразу стучаться в выбранное место в результате первого диалога.

Примечание. Между двумя объединёнными сообщениями прошло некоторое время, за которое заявленная при создании темы версия AutoIt для меня потеряла актуальность по причине применения обновления. Поэтому для точности отмечу, что первый скрипт протестирован на версии 3.3.14.5, а второй - на 3.3.16.1. Впрочем, вряд ли это играет роль.
 
Последнее редактирование:
Верх