Русское сообщество AutoIt

  • Июнь 19, 2013, 20:45:06 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Создана конференция в Jabber'е для обсуждения мелких вопросов касающихся AutoIt.

Всем у кого есть джаббер-клиент, могут присоединиться к конференции по адресу xmpp:autoit@conference.jabber.ru

Комната/Конференция/Чат не призвана заменить этот форум, а лишь для ускорения получения ответов на элементарные и короткие вопросы, которые возможно не требуют создания специальной темы на данном форуме. Для всех остальных, сколь-нибудь сложных и комплексных проблем - исключительно на форум. Комната является постоянной, но при заходе у пользователя будет отсутствовать право писать в общий чат.

Тема на форуме.

Реклама

Автор Тема: Перебор параметров, передаваемых функции  (Прочитано 3417 раз)

0 Пользователей и 1 Гость смотрят эту тему.

maximus_808 [?]

Функции необходимо в виде параметров передать пути папок (может быть много).
Сама функция проверяет существуют ли эти каталоги и в случае если их нет - создает. Если не может создать, то сообщает об этом и выходит из скрипта.
У меня хватило фантазии только на написание функции для одной папки. Буду признателен за помощь, если кто подскажет как переделать эту функцию для обхода нескольких папок.

Вот код:
Код: AutoIt [Выделить]
Func CreateProgramDir ($Dir)
    If FileExists($Dir) Then
        Return(0)
    Else
        If Not DirCreate($Dir) Then
            MsgBox(0, "Ошибка","Не могу создать каталог " & $Dir & @CRLF & "Возможно у Вас нет прав на создание директории в каталоге программы...")
            Exit
        EndIf
    EndIf
EndFunc

« Последнее редактирование: Сентябрь 08, 2009, 15:13:07 от Medic84 »



  Записан

Medic84 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #1, Отправлен: Сентябрь 08, 2009, 15:12:38 »
А что мешает вам использовать функцию несколько раз?




  Записан
   
На форуме принято отмечать полезные сообщения кнопкой "Полезное сообщение"
Никогда не даю подробных примеров сразу, я сначала навожу на мысль - как можно написать. Учитесь мыслить сами, а не за других людей.
Моя лаборатория - программы, статьи и ответы на вопросы.

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 2304
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 4260
    • Награды
Re: Перебор параметров, передаваемых функции
« Ответ #2, Отправлен: Сентябрь 08, 2009, 15:27:10 »
Или можешь передать в функцию массив.




  Записан


Думай, прежде чем говорить.

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #3, Отправлен: Сентябрь 08, 2009, 15:29:21 »
А что мешает вам использовать функцию несколько раз?
Люблю красивый лаконичный код ;)
Но если чесно, то я заранее не знаю сколько будет папок. И гораздо проще передать их все в виде параметров к функции чем вызывать функцию столько раз, сколько есть папок.
При этом на основе этой функции будет строится функция для проверки наличия файлов ... а там количество на порядок больше.




  Записан

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #4, Отправлен: Сентябрь 08, 2009, 15:30:24 »
Или можешь передать в функцию массив.
Можно и массивом, если сначала получить список папок в родительской директории ...
Вот только как?




  Записан

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #5, Отправлен: Сентябрь 08, 2009, 15:35:52 »
Или можешь передать в функцию массив.
Можно и массивом, если сначала получить список папок в родительской директории ...
Вот только как?
Нашел!))))
Код: AutoIt [Выделить]
#include <Array.au3>
 
$aFilesList = _FileListToArrayParse(@SystemDir & "\Config", "*", -1)
_ArrayDisplay($aFilesList)
 
Func _FileListToArrayParse($sPath, $sMask="*", $iMode=-1) ;$iMode > 0 только папки, иначе папки + файлы
    If Not StringInStr(FileGetAttrib($sPath), "D") Then Return SetError(1, 0, 0)
 
    Local $PathesArr[2] = [1, $sPath]
    Local $hSearch, $sFindNext, $i
 
    While $i < $PathesArr[0]
        $i += 1
        $hSearch = FileFindFirstFile($PathesArr[$i] & "\" & $sMask)
        If $hSearch = -1 Then ContinueLoop
        While 1
            $sFindNext = FileFindNextFile($hSearch)
            If @error Then ExitLoop
            $sFindNext = $PathesArr[$i] & "\" & $sFindNext
            If $iMode <= 0 Or ($iMode = 1 And StringInStr(FileGetAttrib($sFindNext), "D")) Then
                $PathesArr[0] += 1
                ReDim $PathesArr[$PathesArr[0]+1]
                $PathesArr[$PathesArr[0]] = $sFindNext
            EndIf
        WEnd
        FileClose($hSearch)
    Wend
    Return $PathesArr
EndFunc





  Записан

Belfigor [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 825
  • Online Online
  • Сообщений: 2693
    • Награды
Re: Перебор параметров, передаваемых функции
« Ответ #6, Отправлен: Сентябрь 08, 2009, 15:59:30 »
А нельзя ли оверпост в виде 3-х подряд сообщений в промежутке в несколько минут объединить в одно?




  Записан
Любые темы внутри раздела "Разработка ботов" не названные в соответствии с правилами раздела, будут закрываться.
Любой ответ, любого пользователя в теме с предупреждением, направленный на решение вопроса, произведенный до того как предупреждение было исправлено, приведет к закрытию темы и удалению всего что было после предупреждения.

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #7, Отправлен: Сентябрь 08, 2009, 16:07:38 »
А нельзя ли оверпост в виде 3-х подряд сообщений в промежутке в несколько минут объединить в одно?
Приму во внимание ;)
*был бит лицом об кафель* :)




  Записан

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #8, Отправлен: Сентябрь 08, 2009, 16:15:15 »
Кстати а у меня единственного так отображается страница?
Похоже CSS форума правили ;) ... у меня в ГуглХром практически так же, только текст не выезжает на след пост, а только поле отображения кода становится шириной в весь листинг ... и рамочка ограничителя окна кода остается ... забавненько так))))
.....
хехе! Пока писал ответ, форум стал на свои скрипты ругаться при сохранении :) Вебмастера в студию!)))
« Последнее редактирование: Сентябрь 08, 2009, 16:20:56 от maximus_808 »



  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 2304
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 4260
    • Награды
Re: Перебор параметров, передаваемых функции
« Ответ #9, Отправлен: Сентябрь 08, 2009, 21:44:40 »
Нашел!))))

maximus_808, а как эта функция связана с твоей темой?




  Записан

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #10, Отправлен: Сентябрь 08, 2009, 22:27:55 »
Нашел!))))

maximus_808, а как эта функция связана с твоей темой?
Как заметил Yashied можно передать папки в первоначальную функцию CreateProgramDir в виде массива. Вот и начал размышлять на тему массивов и папок...
Эта функция (_FileListToArrayParse) возвращает массив имен файлов и/или папок, в зависимости от параметров, плюс файлы еще и по маске можно задать.
Сейчас как раз дорабатываю ее чтобы она возвращала только файлы (добавлением еще одного параметра в функцию _FileListToArrayParse) и будет как раз универсальный вариант, так как в массив попадают и файлы и папки.
Хотя, если честно, то первоначальную задачу это не решает  :-[ так как папки я получаю из ini-файла...




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1977
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 6320
  • Версия AutoIt: 3.3.8.1
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Re: Перебор параметров, передаваемых функции
« Ответ #11, Отправлен: Сентябрь 09, 2009, 06:24:25 »
OffTopicmaximus_808 « Ответ #8, Отправлен: Сентябрь 08, 2009, 15:15:15 »
Цитата
Вебмастера в студию!
Нет такового, есть желание им стать? :P




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.

   Онлайн видео!

«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

maximus_808 [?]

Re: Перебор параметров, передаваемых функции
« Ответ #12, Отправлен: Сентябрь 09, 2009, 17:23:25 »
OffTopicmaximus_808 « Ответ #8, Отправлен: Сентябрь 08, 2009, 15:15:15 »
Цитата
Вебмастера в студию!
Нет такового, есть желание им стать? :P
К сожалению свободного времени нет  :-\




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
Назначение горячих клавиш в зависимости от передаваемых скрипту параметров
AutoIt для новичков
Anton 2 1707 Последний ответ Декабрь 27, 2009, 00:44:54
от Anton
Autoit использует кусок функции даже без вызова функции?
AutoIt для новичков
Suppir 4 2502 Последний ответ Апрель 07, 2010, 15:00:35
от SyDr
Вложенный перебор двух массивов. Проблемы с выходом из перебора
AutoIt для новичков
Suppir 16 2722 Последний ответ Апрель 26, 2010, 22:15:40
от CreatoR
[Элементы GUI] Передача параметров функции через GUICtrlSetOnEvent
AutoIt для новичков
Nerfair 4 1456 Последний ответ Январь 10, 2011, 01:23:32
от `p r o x y
Вызов функции из другого файла - пишет, что у функции нет EndFunc
AutoIt для новичков
Suppir 9 3274 Последний ответ Март 31, 2011, 09:11:41
от Suppir
Перебор на ebay и выдёргивание ISBN
Стол заказов
Dk 51 6855 Последний ответ Май 21, 2011, 00:11:14
от Kaster
Вызов функции из DLL, написанной на Delphi, Типы параметров
AutoIt для новичков
svigelf 0 1625 Последний ответ Август 01, 2011, 06:19:43
от svigelf
Перебор комбинаций из неск. элементов, и объединение их в последовательность
Стол заказов
LightDemon 8 2603 Последний ответ Декабрь 17, 2011, 10:00:06
от C2H5OH
[Автоматизация] Изменение параметров прописанных в функции java-скрипта
Автоматизация IE и Web-интерфейса
Nazgul666 1 896 Последний ответ Апрель 03, 2012, 09:35:34
от Garrett
Перебор сгенирированных ссылок с одинаковым id, сохранение результатов
Автоматизация IE и Web-интерфейса
bazanski 0 345 Последний ответ Март 17, 2013, 11:01:14
от bazanski


Реклама


* Пользователи онлайн
  • Dot Гостей: 90
  • Dot Скрыт: 1
  • Dot Пользователей: 20
  • Dot Пользователи Online: