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

Общий раздел по AutoIt => Примеры и рабочие проекты => UDF - Пользовательские функции => Тема начата: inververs от Март 18, 2014, 17:59:53

Название: _Array_Dump сохраняет структуру массива
Отправлено: inververs от Март 18, 2014, 17:59:53
AutoIt: 3.3.10.0+
Версия: 1.1

Категория: Массивы

Описание: Содержит функцию _Array_Dump которая позволяет просмотреть и востановить структуру и содержание любого массива. Результат представляет собой функцию, которая содержит код востановления исходного массива в первоначальный вид. Результат можно сохранить в файл или вывести в консоль. Нет ограничений на размерность массива*. Нет ограничение на вложенность массивов друг в друга - сохраняет структуру вложенности*

Поддерживает все основные типы данных: Int32, Int64, Double, String, Bool, UserFunction, Function, Ptr/HWnd, Binary, Keyword, Array, Null
Не поддерживается: DLLStruct, Object

Пример:
Код: AutoIt [Выделить]
Local $test_6[5] = [True, 123, 'string', Binary('0xDD'),WinGetHandle('')]
ConsoleWrite(_Array_Dump($test_6,'test') & @LF)

Выводит в консоль:
Func dump_test()
    Local $test[5]
    $test[0] = True            ; Bool
    $test[1] = 123             ; Int32
    $test[2] = 'string'        ; String(6)
    $test[3] = Binary('0xDD')  ; Binary(1)
    $test[4] = HWnd('0x00140B0C')     ; Ptr

    Return $test
EndFunc
Global $test = dump_test()

Еще примеры:
(нажмите для показа/скрытия)
Файл: Версия: 1.1 (http://autoit-script.ru/index.php?action=downloads;sa=view;down=417)

История версий:
(нажмите для показа/скрытия)

Источник: autoit-script.ru (http://autoit-script.ru/index.php?topic=16369.msg100978.html#msg100978)
Автор(ы): inververs

Примечание: Спасибо C2H5OH (http://autoit-script.ru/index.php?topic=16365.msg100965#msg100965) за помощь в создании функции.
* Ограничено только возможностями AutoIT. На данный момент максимально можно создать 64-мерный массив.
* Ограничено максимальным уровнем рекурсии. 3900 лимит для x64 и 1900 лимит для x86


UPD: Новая версия: 1.1
Название: Re: _Array_Dump сохраняет структуру массива
Отправлено: C2H5OH от Март 18, 2014, 18:45:18
inververs
просто дамп - это не очень интересно. Интересно, наверное, было бы сделать для многомерных массивов _FileWriteFromArrayEx и, соответственно, _FileReadToArrayEx.
 ;D
Название: Re: _Array_Dump сохраняет структуру массива
Отправлено: inververs от Март 18, 2014, 19:41:07
C2H5OH  [?]
Цитировать
Интересно, наверное, было бы сделать для многомерных массивов _FileWriteFromArrayEx и, соответственно, _FileReadToArrayEx.
:) Все в ваших руках.

Эта функция пригодится для отладки скриптов, когда массив заполняется в резуальтате какой то работы, и что бы эту всю работу не повторять каждый раз, можно сдампить массив, что бы затем быстро востановить его содержимое.

Ну еще можно смотреть содержимое массивов любой размерности и любой вложенности.

Решил сделать т.к нет инструментов для просмотра кроме как _array_display, который ограничивается 2мерными массивами.

Буду надеяться что кому нибудь эта библиотека поможет.