Что нового

Чтение переменных из файла INI в массив и определение этих переменных

Alessandro2981

Новичок
Сообщения
5
Репутация
0
Здравствуйте, не могу решить проблему:

Есть Settings.ini файл, где лежат настройки для AutoIt:

[Config]
ExcelFileLocation=C:\ALEKSANDRS\Template.xlsm
ExcelSheetsName=Foto
PutFileLoC=C:\putty\PUTTY.EXE
PutWinName=PuTTy-2

Хочу чтобы Autoit Добавил переменные из Settings.ini ($ExcelFileLocation, $ExcelSheetsName, $PutFileLoC и т.д, их может быть много..)
Такой код:
Код:
#include <Excel.au3>
#include <File.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
     Local $aINI = IniReadSection("Settings.ini", "Config")
    If Not @error Then
        For $i = 1 To $aINI[0][0]
		   Assign($aINI[$i][1],$aINI[$i][1])
        Next
	 EndIf
	 MsgBox(4096, "", $ExcelFileLocation)


Выдает ошибку -
MsgBox(4096, "", $ExcelFileLocation)
MsgBox(4096, "", ^ ERROR
 
Автор
A

Alessandro2981

Новичок
Сообщения
5
Репутация
0
Уже нашел решение:

Код:
Local $aINI = IniReadSection("Settings.ini", "Config")
    If Not @error Then
        For $i = 1 To $aINI[0][0]
		    Assign ($aINI[$i][0], $aINI[$i][1],2)
        Next
	 EndIf
	 MsgBox(4096, "", "Location:" & $ExcelFileLocation)


Правда не понял почему именно так должно быть))
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
Alessandro2981 сказал(а):
Правда не понял почему именно так должно быть))

Скорее всего потому что:
$aINI[$i][0] - имя параметра
$aINI[$i][1] - значение параметра

В первом примере Вы задаете через Assign имя переменой (первый параметр) равной $aINI[$i][1] значению параметра
найдите различие:
Код:
Assign($aINI[$i][1],$aINI[$i][1])
Assign($aINI[$i][0],$aINI[$i][1])
 
Автор
A

Alessandro2981

Новичок
Сообщения
5
Репутация
0
Да, точно :smile: Спасибо

Еще появилась такая проблема, при открытии файла Excel с помощью AutoIt
Появляется окно ошибки:

Name Conflict

Name Cannot be the same as a built-in name.
Old name: _FilterDatabase
New name: ___________ сюда предалгает ввести новое имя
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Alessandro2981 [?]
Еще появилась такая проблема
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх