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

Изменение строк в .ini файле

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

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

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

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

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

Изменение строк в .ini файле

Сообщение ONYX » 15 апр 2018, 22:44

Здравствуйте

В ходе работы над плагином появился вопрос: как изменить определенную, нужную мне строчку в .ini файле?

Чтобы было яснее, суть плагина: есть некие пин-коды, которые можно добавлять в .ini файл, после активации пин-кода строчка с ним в .ini файле должна исчезать, либо как то изменяться (на случай если пинкод не одноразовый), здесь я и застопорился.
Лазил в нете, головой думал, надумал только использовать fputs, только вот каким образом? и вопросик еще такой, какие флаги использовать в fopen для записи?
Аватара пользователя
ONYX
 
Сообщения: 3
Зарегистрирован: 30 ноя 2017, 22:44
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Pawn

Re: Изменение строк в .ini файле

Сообщение Fedcomp » 16 апр 2018, 00:03

может лучше через nvault сделать?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4605
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 747 раз.
Поблагодарили: 1238 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Изменение строк в .ini файле

Сообщение RevCrew » 16 апр 2018, 00:38

ONYX, либо write_file с указанием строки куда записывать, либо про fseek читайте
Skype revcrew77
https://vk.com/cssuite
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1502
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 257 раз.
Поблагодарили: 319 раз.
Языки программирования: Unkown

Re: Изменение строк в .ini файле

Сообщение 5H3LL » 16 апр 2018, 03:02

RevCrew, а почему replace не использовать?
Аватара пользователя
5H3LL
 
Сообщения: 3
Зарегистрирован: 05 апр 2018, 12:35
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Pawn
Php
Python
C#

Re: Изменение строк в .ini файле

Сообщение ONYX » 16 апр 2018, 08:18

Fedcomp писал(а):может лучше через nvault сделать?

Нет, я пробовал, он сбивает всю мою систему.
RevCrew писал(а):ONYX, либо write_file с указанием строки куда записывать, либо про fseek читайте

Спасибо, fseek попробую.
5H3LL писал(а):RevCrew, а почему replace не использовать?

Тоже можно по сути, только гемора побольше мне кажется, если с вариантами от RevCrew не получится, в чем я сильно сомневаюсь, я попробую твой вариант.
Аватара пользователя
ONYX
 
Сообщения: 3
Зарегистрирован: 30 ноя 2017, 22:44
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Pawn

Re: Изменение строк в .ini файле

Сообщение 00x1 » 16 апр 2018, 12:55

ONYX, о каком геморрое идет речь?

Код: Выделить всё
new sText[32] = "аАаБбББАаА"
while(replace(sText,charsmax(sText),"Б","А")) {} 
Аватара пользователя
00x1
 
Сообщения: 33
Зарегистрирован: 16 апр 2018, 03:17
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Изменение строк в .ini файле

Сообщение _asd » 19 апр 2018, 22:00

ONYX,
остальное сам допишешь.
Код: Выделить всё
#define SPFILE "pincod.ini"

enum 
    
LOADFILE ,
    
SAVEFILE
}

// init
plugin_init() SettingsFile(LOADFILE);

SettingsFile(sFile){
    new 
szFile[64] , iFile szBuffer[128];
    
get_localinfo("amxx_configsdir" szFilecharsmax(szFile));
    
formatex(szFilecharsmax(szFile), "%s/%s"szFileSPFILE);
    switch (
sFile) {
        case 
LOADFILE: {
            if(!
file_exists(szFile)){
                
log_amx("File %s not exists" SPFILE);
                return;
            }
            
iFile fopen(szFile"rt");
            while(!
feof(szFile)) {
                
fgets(szFileszBuffercharsmax(szBuffer));
                
trim(szBuffer);
                if(!
szBuffer[0] || szBuffer[0] == ';')
                    return;
                
// запись данных с файла
            
}
            
fclose(iFile);
        }
        case 
SAVEFILE: {
            if(
file_exists(szFile)) delete_file(szFile);
            
iFile fopen(szFile"wt");
            
// запись данных в файл
            
fclose(iFile);
        }
        default: return;
    }
    
}
plugin_end() SettingsFile(SAVEFILE);
 

Аватара пользователя
_asd
 
Сообщения: 15
Зарегистрирован: 26 июл 2017, 02:24
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
C++
Sql


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

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

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