Что нового

Функция тотального стирания значений всех ключей в секции ini-файла

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Пробую написать функцию для тотального стирания всех значений ключей секции в ini-файле. Пока получается стирать либо по одному, либо только в первом ключе. Вот примеры:

Вариант 1 стирает по одному значению
Код:
_Clear()

Func _Clear()
    $AllPath = IniReadSection("файл.ini", "Секция")
    For $i = 1 To $AllPath[0][0]
        If $AllPath[$i][1] <> '' Then
           For $j = 1 To $i - 1
               If $AllPath[$j][1]  <> '' Then
       Return
       EndIf
       Next
            IniWrite("файл.ini", "Секция", $AllPath[$i][0], '')
            If $i < $AllPath[0][0] Then Return
        EndIf
    Next
EndFunc

Вариант 2 стирает только первое значение
Код:
_Clear2()

Func _Clear2()
    $AllPath = IniReadSection("файл.ini", "Секция")
    For $i = 1 To $AllPath[0][0]
            IniWrite("файл.ini", "Секция", $AllPath[$i][0], '')
            If $i < $AllPath[0][0] Then Return
   Next
EndFunc

Подправьте, пожалуйста, где ошибка.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
Local $aRS = IniReadSection('file.ini', 'Section')
If Not @error Then
    For $i = 1 To $aRS[0][0]
        $aRS[$i][1] = ''
    Next
    IniWriteSection('file.ini', 'Section', $aRS)
EndIf
 
Автор
D

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Код:
Local $aRS = IniReadSection('file.ini', 'Section')
If Not @error Then
    For $i = 1 To $aRS[0][0]
        $aRS[$i][1] = ''
    Next
    IniWriteSection('file.ini', 'Section', $aRS)
EndIf
Только это ж перезапись всей секции, если я правильно понимаю. Но глядя на этот пример переделал
Код:
Local $aRS = IniReadSection("файл.ini", "Секция")
If Not @error Then
    For $i = 1 To $aRS[0][0]
        $aRS[$i][1] = ''
    IniWrite("файл.ini", "Секция", $aRS[$i][0], '')
    Next
EndIf

И у меня остался вопрос: Как правильней? Что быстрее?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
быстрее сделать запись один раз, как в моем примере, а не каждый раз открывать файл и записывать значение.
и мой пример это не просто перезапись секции. задача в обнулении значения ключей, а ключи оставить те же
 
Верх