Создать акаунт
[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум pawno » Pawno » Стандартные функции » Деление Строки На Ключ И Значение
Деление Строки На Ключ И Значение
Дата: Воскресенье, 08.05.2016, 00:59 | Сообщение # 1
ON
Администратор
288Сообщения:
Функция позволяет делить строку на две части: ключ и значение.

Код
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

Автор: REALman

Форум pawno » Pawno » Стандартные функции » Деление Строки На Ключ И Значение
  • Страница 1 из 1
  • 1
Поиск:

Старая форма входа