Русское сообщество по скриптингу

вопрос про delete_string (удаляем строку в файле)  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

вопрос про delete_string (удаляем строку в файле)

Сообщение di.alyabev » 28 янв 2018, 10:56

День добрый, помогите если кому не трудно, искал любую информацию чтобы удалить строку в файле, а не заменить или оставить пустой пробел.
Нашел способ от Вы должны зарегистрироваться, чтобы видеть ссылки. под названием Вы должны зарегистрироваться, чтобы видеть ссылки.
Но чтото не зашел данный способ, отказывается работать, может есть еще подобные методы для решения моей задачи?

Сам код:
- логов при использование нет
- пример использования delete_string("addons/amxmodx/configs/filetest.ini", строка)

Код: Выделить всё
public delete_string(s_file[], i_string) {
    if(i_string != 2) return PLUGIN_HANDLED;
    new s_file[1024]; get_string(1,s_file,1023);
    if(!file_exists(s_file) || !s_file[0]) return PLUGIN_HANDLED;
    new s_buffer[1024]; new i_file = fopen(s_file,"rt");
    while(!feof(i_file)) {
        fgets(i_file,s_buffer,1023);
        trim(s_buffer);
        ArrayPushString(g_a_data,s_buffer);
    }
    fclose(i_file);
    delete_file(s_file);

    new i_size = ArraySize(g_a_data);
    if(!i_size) return PLUGIN_HANDLED;
    new i_line = get_param(2);
    if(i_line> i_size - 1 || i_line < 0) return PLUGIN_HANDLED;
    i_file = fopen(s_file,"wt");
    for(new a; a < i_size; a++) {
        if(== i_line) continue;
        ArrayGetString(g_a_data,a,s_buffer,1023);
        if(== (i_size-1))
            format(s_buffer,1023,"%s",s_buffer);
        else
            format
(s_buffer,1023,"%s^n",s_buffer);
        fputs(i_file,s_buffer);
    
    
}
    fclose(i_file);
    ArrayClear(g_a_data);
    return PLUGIN_CONTINUE;
Аватара пользователя
di.alyabev
 
Сообщения: 200
Зарегистрирован: 15 ноя 2012, 15:58
Забанен
Благодарил (а): 24 раз.
Поблагодарили: 109 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: вопрос про delete_string (удаляем строку в файле)

Сообщение RevCrew » 28 янв 2018, 18:05

di.alyabev, ну
Код: Выделить всё
if(i_string != 2) return PLUGIN_HANDLED

Откуда взялось? Удалите строчку эту и попробуйте
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: вопрос про delete_string (удаляем строку в файле)  [Решено]

Сообщение di.alyabev » 28 янв 2018, 20:34

RevCrew, авторский код, я когда эту строчку увидел тоже не понял ее смысл , сейчас попробую результат доложу

Добавлено спустя 48 минут 25 секунд:
Все решил, вроде идеально!
Убрал get-string и get-param, ну и проверку эту убрал , спасибо огромное!
Аватара пользователя
di.alyabev
 
Сообщения: 200
Зарегистрирован: 15 ноя 2012, 15:58
Забанен
Благодарил (а): 24 раз.
Поблагодарили: 109 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6