Моя первая попытка чего-то типа "С", как в
около 20 лет ... Так что, в лучшем случае, псевдокод!
Прочитайте в строке текста, затем ...
char timestamp[11]; timestamp[10] = '\0';
char number[10]; number[9] = '\0';
for (i = 0 ; i < strlen(text); ) {
if isAlpha(text[i]) {
if text[i] == 'T' & text[i+1] == 'S' {
memcpy(timestamp, text[i+2], 10)
/* do whatever you do with a timestamp */
i += 12 /* Skip over timestamp */
} else {
memcpy(number, text[i+1], 9)
/* do whatever you do with a number */
i += 10 /* Skip over number */
}
} else {
if text[i] != '0' {
/* handle the error - should not get here */
}
i++ /* move to next character */
}
Если строки не должны содержать полные строки (например, одна строка заканчивается TS10405
и
следующая строка начинается с 01134
), вам придется написать дополнительный код для правильного обновления буфера text
.