Z MeZe Цитата: Sbuf: PChar; // длинная строка
это не длинная строка, это все-таки строка с нулевым окончанием, длинная строка вроде string если ничего не указывать компилятору, то он ее по умолчанию
Цитата:
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters
The reserved word string functions like a generic type identifier. For example,
var S: string;
creates a variable S that holds a string. In the default {$H+} state, the compiler interprets string (when it appears without a bracketed number after it) as AnsiString.
так что строки немножко длиннее будут, чем PChar.
Немножко бредово насчет
Цитата: буфер массива char обязателен
в общем, я бы делал для выдирания чисал след. образом (только это работает с обычными строками), потом 2 способ
используешь val она возвращает позицию символа который нельзя перевести в число, то есть если это все загать в цикл и удалить вначале все не цифры, то потом получая позицию ошибочного элемента, мы копируем все символы от начала строки в массив чисел, потом удаляем все до ошибочного символа, и опять сканируем дальше.
второй способ, создаем множество символов и добавляем туда точку, потом начинаем сканировать строку, как только находишь символ из множества, запоминаешь его позицию. потом ищешь пока не найдешь символ не из множества копируешь что посередине это твое число, потом обрезаешь строку, до символа не из множества включительно.
Третий способ, вроде можно парсить строку RegExp но я их не использовал, мож кто другой знает.