Что нового

Данные, строки Функция для роботы с DevCon

VladiX

Новичок
Сообщения
2
Репутация
0
Доброе время суток.
Столкнулся с проблемой написания функции для получения массива оборудования устройства через DevCon.exe с записью в ini
C _ArrayDisplay функция работает нормально а вот вывести в ini не получается
Код:
#include <Array.au3>

Func DevConDL()
Local $DevConRead, $oDevConRead
Local $lLocation = @ScriptDir
Local $pRun = ('\devconx.exe classes')
$DevConRead = Run($lLocation & $pRun,'',@SW_HIDE,$STDOUT_CHILD)
Sleep(900)
$oDevConRead = StdoutRead($DevConRead)
$oMassive = StringSplit ($oDevConRead,":")
Return $oMassive
EndFunc
IniWriteSection(@ScriptDir & "\Equipment.ini","Equipment",DevConDL())
_ArrayDisplay(DevConDL())
; MsgBox(4096, "", DevConDL())

Установка IniWriteSection в конструкции функции тоже не даёт результата
 
Последнее редактирование:

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
StringSplit не возвращает двумерный массив. В справке к IniWriteSection описан формат массива/строки которую он принимает в качестве данных для записи

filenameПуть к ini-файлу.
sectionИмя секции в ini-файле.
dataДанные для записи. Может быть строкой или массивом. Если строка, то пары параметр=значение должны быть разделены символом @LF. Если массив, то он должен быть 2-мерным, а его второе измерение должно быть 2 элементным, то есть 2 колонки.
index[необязательный] Если в качестве данных передаётся массив, то этот параметр указывает индекс первого элемента для записи. По умолчанию 1 для удобства работы с массивами, возвращёнными функцией IniReadSection(). При ручном создании массива индекс может быть другим, например 0. Этот параметр игнорируется, если данные передаются строкой.
 
Автор
V

VladiX

Новичок
Сообщения
2
Репутация
0
StringSplit не возвращает двумерный массив. В справке к IniWriteSection описан формат массива/строки которую он принимает в качестве данных для записи
Спасибо поправил код в итоге начало записывать как полагается
Код:
#include <Array.au3>

Func DevConDL()
Local $DevConRead, $oDevConRead
Local $lLocation = @ScriptDir
Local $pRun = ('\devconx.exe classes')
$DevConRead = Run($lLocation & $pRun,'',@SW_HIDE,$STDOUT_CHILD)
Sleep(900)
$oDevConRead = StdoutRead($DevConRead)
$oMassive = StringRegExpReplace ($oDevConRead,":","=")
Return $oMassive
EndFunc
IniWriteSection(@ScriptDir & "\Equipment.ini","Equipment",DevConDL())

теперь в принципе можно любую информацию из DevCon записывать в массив и использовать к примеру для управления устройствами или установки драйверов
 
Последнее редактирование:
Верх