» EnumINI: Очень полезный плагин

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 09.08.2012

Я хочу рассказать вам о плагине EnumINI
Данный плагин позволяет получать различную информацию о содержании INI файлов, он умеет:
А теперь примерчики! ;)

Получаем информацию о количестве параметров в секции INI файла

  EnumINI::Section "enumtest.ini" "Название_Секции"
  Pop $R0
В переменную $R0 будет помещено количество параметров в указанной секции
 

Перечитываем имена параметров в секции

  EnumINI::Section "enumtest.ini" "Название_Секции"
  Pop $R0
; $R0 - количество параметров
  StrCmp $R0 "error" done

  loop:
    IntCmp $R0 "0" done done 0
    Pop $R1

  MessageBox MB_OK|MB_ICONINFORMATION "$R1"

    IntOp $R0 $R0 - 1
    Goto loop
  done:
В переменную $R1 будет помещаться имя параметра


Получаем информацию о количестве секций в INI файле

  EnumINI::SectionNames "enumtest.ini"
  Pop $R0
В переменную $R0 будет помещено количество секций в файле


Перечитываем все секции в INI файле

  EnumINI::SectionNames "enumtest.ini"
  Pop $R0
; $R0 - количество секций

  StrCmp $R0 "error" done2

  loop2:
    IntCmp $R0 "0" done2 done2 0
    Pop $R1

  MessageBox MB_OK|MB_ICONINFORMATION "$R1"

    IntOp $R0 $R0 - 1
    Goto loop2
  done2:
В переменную $R1 будет помещаться имя секции


Определяем, существует ли указанный параметр в какой-либо секции

  EnumINI::KeyExist "enumtest.ini" "Секция" "Параметр"
  Pop $R0
  StrCmp $R0 "1" 0 +2
    MessageBox MB_OK|MB_ICONINFORMATION "Указанный параметр существует" idok +2
    MessageBox MB_OK|MB_ICONSTOP "Указанный параметр не существует"


Определяем, существует ли указанная секция

  EnumINI::SectionExist "enumtest.ini" "Секция"
  Pop $R0
  StrCmp $R0 "1" 0 +2
    MessageBox MB_OK|MB_ICONINFORMATION "Указанная секция существует" idok +2
    MessageBox MB_OK|MB_ICONSTOP "Указанная секция не существует"



Заключение

Впринципе, это всё, что умеет плагин. Всё остальное зависит уже от вас, в оригинальном архиве с плагином есть ещё 2 примера, но их реализовать не составит труда...

Перечитываем имена параметров в секции + читаем значения этих параметров

  EnumINI::Section "enumtest.ini" "Секция"
  Pop $R2
; $R2 - количество параметров
  StrCmp $R2 "error" done3
  loop3:
    IntCmp $R2 "0" done3 done3 0
    Pop $R3
    ReadINIStr $R4 "$EXEDIR\enumtest.ini" "Секция" "$R3"

  MessageBox MB_OK|MB_ICONINFORMATION "Параметр: $R3 $\n Значение: $R4"

    IntOp $R2 $R2 - 1
  Goto loop3
  done3:


Перечитываем все секции в файле + перечитываем параметры в секциях + значения параметров

  EnumINI::SectionNames "enumtest.ini"
  Pop $R0
; $R0 - количество секций
  StrCmp $R0 "error" done
  loop:
    IntCmp $R0 "0" done done 0
    Pop $R1
; $R1 - Имя секции

    DetailPrint "Нашли секцию [$R1]"
   
    EnumINI::Section "enumtest.ini" "$R1"
    Pop $R2
    StrCmp $R2 "error" done2
    loop2:
      IntCmp $R2 "0" done2 done2 0
      Pop $R3
; $R3 - имя параметра
 
      ReadINIStr $R4 "$EXEDIR\enumtest.ini" "$R1" "$R3"
; $R4 - значение параметра

      DetailPrint "Параметр $R3 = $R4"
 
     IntOp $R2 $R2 - 1
      Goto loop2
    done2:
    DetailPrint ""
   
    IntOp $R0 $R0 - 1
    Goto loop
  done: