KeyValuesToFile не сохраняет в файл.

Тема в разделе "Программирование / Скриптинг", создана пользователем uhx, 8 июл 2015.

  1. uhx

    uhx

    Сообщения:
    20
    Симпатии:
    0
    Собсна сабж:
    Разбираюсь тут с KeyValues, вроде все допер, но тут беда: не могу сохранить свой список. Весь код выкладывать не хочу, скину основные (как по мне) моменты.

    PHP:
    new Handle:kv INVALID_HANDLE;
    ...
    public 
    void OnPluginStart(){
        
    kv CreateKeyValues("File");
        
    FileToKeyValues(kv"/configs/file.txt");
    }
    ...
    // Потом обработка нажатия в меню, удаляем/добавляем какие-то ключи и пытаюсь сохранить:

        
    KvRewind(kv);
        if(
    KeyValuesToFile(kv"/configs/file.txt")){
            
    CGOPrintToChat(client"[{GREEN}VCC{DEF}] Список {LIME}успешно {DEF}обновлен!");
        }
        else{
            
    CGOPrintToChat(client"[{GREEN}VCC{DEF}] {RED}Ошибка! {DEF}Запись в файл невозможна!");
        }
    Никаких исключений в консоли не вылетает, просто функция возвращает 0, а не 1.
    Я не знаю в чем беда, в меню все сохраненные изменения отображаются корректно, а в файл это записать не могу.
    Вроде бы все верно сделал: вызвал KvRewind - поднялся на самую верхушку, чтобы записать все ключики, затем вызываю KeyValuesToFile - Invalid Handle (из вики).
    Хотя как хендл может быть битым, если я продолжаю корректно обновлять данные в списке? (ошибок то нет, кроме этой)
     
    Последнее редактирование: 8 июл 2015
  2. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    KeyValuesToFile(kv, "/configs/file.txt")

    Путь нужно указывать из под корня cstrike (если игра CS)

    К примеру:
    KeyValuesToFile(kv, "addons/sourcemod/configs/file.txt");

    И в начале никогда не ставь слэшы
     
    uhx нравится это.
  3. uhx

    uhx

    Сообщения:
    20
    Симпатии:
    0
    Спасибо, все работает :) А то ни в одном гайде не было написано, как путь нормально прописать)
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.004
    Симпатии:
    2.994
    uhx, можно посмотреть в других плагинах.
     
  5. uhx

    uhx

    Сообщения:
    20
    Симпатии:
    0
    Я знаю, благо в нотпаде++ есть поиск подстроки во всех файлах указанного каталога)
    Просто писалось уже это дело под утро и я не соображал, а там вот какие строчки:

    new String:m_szFile[PLATFORM_MAX_PATH];
    BuildPath(Path_SM, STRING(m_szFile), "configs/store/items.txt");
    new Handle:m_hKV = CreateKeyValues("Store");
    FileToKeyValues(m_hKV, m_szFile);


    Красным выделено то, куда я в первую очередь смотрел, а розовым - на что я не обратил внимания) В общем, мой косяк.
    ЗЫ в теге пчп цвета не работают :с