eus_deus
30-11-2013, 20:07
Здравствуйте!
Имеется скрипт, который пишет данные в стандартный ini файл. Хотелось бы, чтобы при записи новые секции (да и старые, если в них вносятся изменения) писались не в конец файла, а сортировались по алфавиту, но единственное, что нарыл более менее подходящее - это _ArraySort(). Боюсь сильно портить функцию, она то рабочая...
Вид функции такой:
Func _savethemetofile()
Local $vData
$existsect = GUICtrlRead($vCombo1)
$sect = GUICtrlRead($vInput8)
$vkey1 = GUICtrlRead($vInput1)
If $vkey1 Then $vData &= "BkColor=" & $vkey1 & @LF
$vkey2 = GUICtrlRead($vInput2)
If $vkey2 Then $vData &= "IconBkColor=" & $vkey2 & @LF
$vkey3 = GUICtrlRead($vInput3)
If $vkey3 Then $vData &= "IconBkGrdColor=" & $vkey3 & @LF
$vkey4 = GUICtrlRead($vInput4)
If $vkey4 Then $vData &= "SelectBkColor=" & $vkey4 & @LF
$vkey5 = GUICtrlRead($vInput5)
If $vkey5 Then $vData &= "SelectRectColor=" & $vkey5 & @LF
$vkey6 = GUICtrlRead($vInput6)
If $vkey6 Then $vData &= "TextColor=" & $vkey6 & @LF
$vkey7 = GUICtrlRead($vInput7)
If $vkey7 Then $vData &= "SelectTextColor=" & $vkey7 & @LF
if GUICtrlRead($vRadio1) = $GUI_CHECKED then
If $sect='' then
MsgBox(262144+48, "Ошибка ", "Введите имя секции.")
Return
endif
if $vData='' then
MsgBox(262144+48, "Ошибка ", "Вы не ввели ни одного значения.")
Return
else
$vibor = MsgBox(262144+32+4,'Сохранение секции','Хотите сохранить секцию с выбранными параметрами? ')
If $vibor='6' Then
IniWriteSection($inifile, $sect, $vData)
MsgBox(262144 + 64, "Все удалось!", "Секция записана в файл " & $inifile)
Else
return
Endif
Endif
Else
if $existsect<>'' then
IniWriteSection($inifile, $existsect, $vData)
MsgBox(262144 + 64, "Все удалось!", "Вы сохранили отредактированную секцию в файл " & $inifile)
_clean_color()
endif
EndIf
EndFunc
Имеется скрипт, который пишет данные в стандартный ini файл. Хотелось бы, чтобы при записи новые секции (да и старые, если в них вносятся изменения) писались не в конец файла, а сортировались по алфавиту, но единственное, что нарыл более менее подходящее - это _ArraySort(). Боюсь сильно портить функцию, она то рабочая...
Вид функции такой:
Func _savethemetofile()
Local $vData
$existsect = GUICtrlRead($vCombo1)
$sect = GUICtrlRead($vInput8)
$vkey1 = GUICtrlRead($vInput1)
If $vkey1 Then $vData &= "BkColor=" & $vkey1 & @LF
$vkey2 = GUICtrlRead($vInput2)
If $vkey2 Then $vData &= "IconBkColor=" & $vkey2 & @LF
$vkey3 = GUICtrlRead($vInput3)
If $vkey3 Then $vData &= "IconBkGrdColor=" & $vkey3 & @LF
$vkey4 = GUICtrlRead($vInput4)
If $vkey4 Then $vData &= "SelectBkColor=" & $vkey4 & @LF
$vkey5 = GUICtrlRead($vInput5)
If $vkey5 Then $vData &= "SelectRectColor=" & $vkey5 & @LF
$vkey6 = GUICtrlRead($vInput6)
If $vkey6 Then $vData &= "TextColor=" & $vkey6 & @LF
$vkey7 = GUICtrlRead($vInput7)
If $vkey7 Then $vData &= "SelectTextColor=" & $vkey7 & @LF
if GUICtrlRead($vRadio1) = $GUI_CHECKED then
If $sect='' then
MsgBox(262144+48, "Ошибка ", "Введите имя секции.")
Return
endif
if $vData='' then
MsgBox(262144+48, "Ошибка ", "Вы не ввели ни одного значения.")
Return
else
$vibor = MsgBox(262144+32+4,'Сохранение секции','Хотите сохранить секцию с выбранными параметрами? ')
If $vibor='6' Then
IniWriteSection($inifile, $sect, $vData)
MsgBox(262144 + 64, "Все удалось!", "Секция записана в файл " & $inifile)
Else
return
Endif
Endif
Else
if $existsect<>'' then
IniWriteSection($inifile, $existsect, $vData)
MsgBox(262144 + 64, "Все удалось!", "Вы сохранили отредактированную секцию в файл " & $inifile)
_clean_color()
endif
EndIf
EndFunc