|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Считать инфу из разделов INI файла в разные массивы. |
|
|
[решено] Считать инфу из разделов INI файла в разные массивы.
|
Ветеран Сообщения: 553 |
Профиль | Отправить PM | Цитировать Вообщем интересует как считать инфу(все ключи и значения) из разделов INI файла в разные! массивы. По одному массиву для каждого раздела. Или в многомерный массив. Не знаю как лучше.
Я знаю как это сделать ... но если разделов 20 или 30 ... неохота для каждого прописывать. |
|
Отправлено: 17:11, 23-01-2010 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать Посмотри IniReadSectionNames и IniReadSection
|
Отправлено: 18:18, 23-01-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Цитата FlatX007:
|
|
Отправлено: 18:37, 23-01-2010 | #3 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:50, 23-01-2010 | #4 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Во первых с ошибками и не работает ... я тоже думал просто сначало.
|
|
Отправлено: 19:21, 23-01-2010 | #5 |
Новый участник Сообщения: 27
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:37, 23-01-2010 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать #Include <Array.au3> $sIniFile = @DesktopDir & '\File.ini' $aSectNames = IniReadSectionNames($sIniFile) If IsArray($aSectNames) Then Dim $aAllSections[$aSectNames[0]+1] For $i = 1 To $aSectNames[0] $aCurrentSection = IniReadSection($sIniFile, $aSectNames[$i]) If Not @error Then $aCurrentSection[0][1] = $aSectNames[$i] $aAllSections[$i] = $aCurrentSection _ArrayDisplay($aAllSections[$i]) EndIf Next EndIf |
------- Отправлено: 22:14, 23-01-2010 | #7 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Ничё непонимаю ... и как мне вытащить из этого массива что либо ?
|
Отправлено: 22:49, 23-01-2010 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата FlatX007:
$sIniFile = @DesktopDir & '\File.ini' $aSectNames = IniReadSectionNames($sIniFile) If Not IsArray($aSectNames) Then Exit MsgBox(16, 'Error', 'No Sections found (or file does not exists).') Dim $aAllSections[$aSectNames[0] + 1] $aAllSections[0] = $aSectNames[0] For $i = 1 To $aSectNames[0] $aCurrentSection = IniReadSection($sIniFile, $aSectNames[$i]) If Not @error Then $aCurrentSection[0][1] = $aSectNames[$i] $aAllSections[$i] = $aCurrentSection EndIf Next ;Вытаскиваем данные из массива массивов :)... For $j = 1 To $aAllSections[0] ;Получаем массив из N-ого элемента общего массива (содержит массив в каждом элементе) $aCurrentSection = $aAllSections[$j] ;Печатаем имя секций, которое содержится в первом элементе второго измерения (это двумерный массив) ConsoleWrite("[" & $aCurrentSection[0][1] & "]" & @CRLF) ;Печатаем все ключи и их значения For $x = 1 To $aCurrentSection[0][0] ConsoleWrite($aCurrentSection[$x][0] & "=" & $aCurrentSection[$x][1] & @CRLF) Next ConsoleWrite(@CRLF) Next |
|
------- Отправлено: 00:15, 24-01-2010 | #9 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать И как мне вывести в окно сообщения (MsgBox) - первое значение, допустим, из 2 раздела (всего их 5) INI файла - что бы (MsgBox) - находился не в цикле.
Я вопрос наверно не правильно задал, мне нужно по другому. Мне вот так нужно заполнить массив ... только у меня не работает почему-то, заполняется только последний элемент массива елементами из последней секции INI файла. #Include <Array.au3> ;~ $sPathIni = @ScriptDir & '\Original Library\Olf.ini' $sPathIni = @WindowsDir & "\win.ini" $aSectionNames = IniReadSectionNames($sPathIni) If Not (@error) Then For $i = 1 To $aSectionNames[0] $aIniRead = IniReadSection($sPathIni, $aSectionNames[$i]) If Not (@error) Then Global $aArray[UBound($aSectionNames)][UBound($aIniRead)] For $i1 = 1 To $aIniRead[0][0] $aArray[$i][$i1] = $aIniRead[$i1][1] Next EndIf Next EndIf _ArrayDisplay($aArray) |
Отправлено: 09:53, 24-01-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - [решено] Проблема винчестера и разделов (потеря разделов) | SylverFuntik | Накопители (SSD, HDD, USB Flash) | 23 | 06-04-2010 01:42 | |
Разное - Параметр /3GB файла boot.ini в Windows XP. | Mixa7 | Microsoft Windows 2000/XP | 17 | 24-02-2010 13:08 | |
[решено] синхронизировать время из ini файла | Lodoss | AutoIt | 1 | 26-03-2009 10:23 | |
Загрузка - [решено] Что должно быть в параметре load файла SYSTEM.INI? | Котяра | Microsoft Windows 2000/XP | 3 | 12-12-2008 21:07 | |
Разные имена разделов реестра при каждой установке Windows | Solitude | Автоматическая установка Windows 2000/XP/2003 | 5 | 11-02-2005 13:53 |
|