Функция позволяет делить строку на две части: ключ и значение.

Код:
stock KeyStringDiv(const string[],&outkey[],&outvalue[],delimiter)
{
    for(new i; string [i]!= '\0'; i++)
    {
        if(string [i]== delimiter)
        {
            new str = strlen(string);
            strmid(outkey,string,0,i,i);
            strmid(outvalue,string,i+1,str,str);

            return 1;
        }
    }

    return 0;
}

Лучше конечно использовать с дефайнами. Объясняю, что каждый из них значит: MAX_STROKE_LENGTH - максимальная длина всей строки (string), MAX_KEY_LENGTH - максимальная длина ключа, MAX_VALUE_LENGTH - максимальная длина значения.

Теперь объясню аргументы.
string[] - сюда писать всю вашу строку, с ключом и значением
outkey[] - место для переменной, в которую запишется нарезанный ключ
outvalue[] - место для переменной, в которую запишется нарезанное значение
delimiter - по какому символу делить. Пишется в формате '=' , где равно - любой символ.

Вот скрипт-пример:

Код:
new File:rdfile = fopen("aaa.ini",io_read),string[512],outkey[256],outvalue[256];

fread(rdfile,string);
        
new success = KeyStringDiv(string,outkey,outvalue,'=');
    
if(success == 0) { print("В строке не найден delimiter"); return 1; }
    
printf("key: %s | value: %s",outkey,outvalue);

При записи в файл такой строки:

lol=wut?

В консоль выдало:

key: lol | value: wut?

И еще одно свойство: если ключ в строке не найден, функция возвращает ноль. Поэтому в моем тест-скрипте при не вводе в файл символа '=' в консоль выводило следующий текст:

В строке не найден delimiter