Эхх, велосипеды... Обожаю.
Как я уже писал в соседней теме, можно при помощи strfind. Вот готовая схема
PHP код:
new string[] = "Регистрация форумного аккаунта завершена!\n\nНомер аккаунта:\t\t18\nИмя аккаунта:\t\tDeimoS",// Массив с текстом диалога
pos1,
pos2,
buff[11];
static const find_string[] = "Номер аккаунта:\t\t";// А тут тот участок текста, который стоит перед ID аккаунта
pos1 = strfind(string, find_string, false, 0) + (sizeof(find_string)-1);// Собственно, сам поиск.
pos2 = strfind(string, "\n", false, pos1);
strmid(buff, string, pos1, pos2, 11);
printf("|%s| %d", buff, strval(buff));// Результат в массиве buff, который можно как строкой отобразить, так и числом при помощи strval
Принцип тут такой:
PHP код:
pos1 = strfind(string, find_string, false, 0) + (sizeof(find_string)-1);
В этой строке strfind находит начало фразы "Номер аккаунта:\t\t" (то бишь, расположение первой буквы в массиве string). Далее мы прибавляем к полученной координате размер самой строки "Номер аккаунта:\t\t", дабы добраться до начала нашего ID (так как работаем с sizeof, которая возвращает не максимальный порядковый номер массива (от 0 до ...), а именно количество ячеек (0+1+2+3+4 = 5 ячеек), то для того, чтоб вернуть именно размер строки, отнимаем единицу). Собственно, в pos1 у нас есть координата начала ID.
Сама строка для поиска определяется легко: берём всё то, что нам известно о тексте до искомого нами участка (точнее, то, что позволит нам сделать искомый текст максимально уникальным (именно поэтому там не просто взяло слово "аккаунта" или символ "\t") и уже по нему ищем). Если такого текста нет (так, на будущее), проявляем смекалку и при форматировании этот текст добавляем (например, можно было выделить ID аккаунта вот такими скобками: «» - которые нужно исключить из остального текста (дабы они были уникальны) и уже по ним найти начало и конец).
А уже вот тут:
PHP код:
pos2 = strfind(string, "\n", false, pos1);
мы ищем конец нашего ID, который записан в виде текста. В данном случае сразу после ID идёт символ переноса строки, который мы и ищем. Если был бы другой какой-то текст, известный нам заранее - искали бы его.
Ну и тут уже вычленяем наш ID в отдельный массив, опираясь на полученные координаты:
PHP код:
strmid(buff, string, pos1, pos2, 11);
Всё