INIFile.GetSectionNames

table INIFile.GetSectionNames ( string Filename )
Примеры

Описание

Возвращает все названия "секций" из INI файла.

Параметры

Filename

(строка) Полный путь к INI файлу.

Возврат

ResultVariable

(таблица) Таблица содержащая все названия "секций" в указанном INI файле. Если нет названий секций или случается ошибка (например, файл не существует), будет возвращено значение nil. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.

При добавлении действия из редактора скрипта, можно использовать это поле для определения переменной, которая возвращает значение, сохраняющееся в ней.
Смотрите также: Связанные действия

Примеры

Пример 1

section_names = INIFile.GetSectionNames(_SourceFolder .. "\\settings.ini");
Получаем все названия секций из INI файла по имени "settings.ini" и сохраняем их в таблице, названной "value_names".

Примечание: _SourceFolder это встроенная переменная, которая содержит путь к папке, где размещен файл autorun.exe.

Пример 2

-- Get all of the section names in an INI file.
-- Получаем все названия секций в INI файле.
all_sections = INIFile.GetSectionNames("C:\\Data.ini");

-- Check to see if any error occurred.
-- Проверяем, не было ли какой ошибки.
error = Application.GetLastError();

-- If an error occurred, display the error message.
-- Если была ошибка, показываем сообщение об ошибке.
if (error ~= 0) then
    Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
else
    found = false;
    -- Check to see if any sections are present.
    -- Проверяем, все ли секции показаны.
    if (all_sections ~= nil) then
        -- Go through each section and try to get a value.
        -- Проходим по каждой секции и пытаемся получить значение.
        for index_section, section in pairs(all_sections) do
            -- Try to get the data of the value you want.
            -- Пытаемся получить нужные данные значения.
            value_data = INIFile.GetValue("C:\\Data.ini", section, "Path");

            -- If the value was found, modify it's data.
            -- Если значение найдено, изменяем его данные.
            if value_data ~= "" then
                INIFile.SetValue("C:\\Data.ini", section, "Path", _ProgramFilesFolder .. "\\MyApplication");

                -- Check to see if any error occurred.
                -- Проверяем, не было ли какой ошибки.
                error = Application.GetLastError();
                -- If an error occurred, display the error message.
                -- Если была ошибка, показываем сообщение об ошибке.
                if (error ~= 0) then
                    Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
                end

                found = true;
                break;
            end
        end
    end

    -- If the value was not found.
    -- Если значение не было найдено.
    if (all_sections == nil) or (not found) then
        -- Create a new section with a new value and data.
        -- Создаем новую секцию с новым значением и данными.
        INIFile.SetValue("C:\\Data.ini", "INSTALL", "Path", _ProgramFilesFolder .. "\\MyApplication");

        -- Check to see if any error occurred.
        -- Проверяем, не было ли какой ошибки.
        error = Application.GetLastError();
        -- If an error occurred, display the error message.
        -- Если была ошибка, показываем сообщение об ошибке.
        if (error ~= 0) then
            Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
        end
    end
end


Цель этого примера - поиск определенного названия значения в INI файле, чье название секции неизвестно. Если значение найдено, его данные обновляются. Если не найдено, в файле создается новая секция, значение и данные.
Смотрите также: Связанные действия