|
Форум Программирование в Pawno Стандартные функции Деление Строки На Ключ И Значение |
Деление Строки На Ключ И Значение |
Функция позволяет делить строку на две части: ключ и значение.
Код 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 Программист любитель :) |
| |||
| |||