Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Загруза тольк определенных имен секций ini файла (http://forum.oszone.net/showthread.php?t=268561)

eus_deus 22-09-2013 14:55 2221921

Загруза тольк определенных имен секций ini файла
 
Вложений: 1
Всем привет! Итак, рабочий пример
Код:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Form2", 629, 478, 433, 177)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 321, 361)
GUICtrlSetData(-1, "")
$Edit2 = GUICtrlCreateEdit("", 336, 8, 289, 361)
GUICtrlSetData(-1, "")
$Button1 = GUICtrlCreateButton("Read INI", 8, 416, 105, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
Case $Button1
_iniread()
    EndSwitch
WEnd

Func _iniread()
  $inifile=@ScriptDir& '\test.ini'
  $sections=IniReadSectionNames($inifile)
  $msg=''
  For $i = 1 To $sections[0]
    $msg &= $sections[$i] & @CRLF
  GUICtrlSetData($Edit1, $msg)
  Next
EndFunc

Ini файл в прикрепленных файлах. Задача - загрузка в Edit1 имен секций, но не всех, а в каждом случае своих:
-1. секции, содержащие v_ в имени
-2. секции только на кириллице
-3. другие секции на латинице, кроме тех, что содержат v_

eus_deus 22-09-2013 15:32 2221956

Остался только второй вопрос - секции, содержащие кириллицу. Как их не включать в список?
По другим вопросам - решил так
Код:

Func _iniread()
  $inifile=@ScriptDir& '\test.ini'
  $sections=IniReadSectionNames($inifile)
  $msg=''
  For $i = 1 To $sections[0]
  if $sections[$i]='Setting' Or  StringInStr($sections[$i], 'v_' ) Then
ContinueLoop
EndIf
    $msg &= $sections[$i] & @CRLF
  GUICtrlSetData($Edit1, $msg)
  Next
EndFunc

Это для третьего, для первого аналогично. Как всегда, через ж..., но работает))))

Creat0R 22-09-2013 20:08 2222148

Код:

Func _iniread()
    $inifile = @ScriptDir & '\test.ini'
    $sections = IniReadSectionNames($inifile)
    $msg = ''

    For $i = 1 To $sections[0]
        If $sections[$i] <> 'Setting' And Not StringInStr($sections[$i], 'v_') And Not StringRegExp($sections[$i], '[а-яёА-ЯЁ]') Then
            $msg &= $sections[$i] & @CRLF
            GUICtrlSetData($Edit1, $msg)
        EndIf
    Next
EndFunc

Тут нужно определиться, либо...
Цитата:

Цитата eus_deus
секции только на кириллице »

либо...
Цитата:

Цитата eus_deus
секции, содержащие кириллицу »

если нужно первое, то в цикле последнее условие должно быть таким: StringRegExp($sections[$i], '^[а-яёА-ЯЁ]+$')

eus_deus 22-09-2013 20:47 2222169

Creat0R, да, все было так просто. С текстовым полем работает, спасибо. С комбобоксом - нет, но это не в тему


Время: 22:47.

Время: 22:47.
© OSzone.net 2001-