En Delphi 2005 (no se si en versiones anteriores viene) existe una función denominada "ExtractStrings", que devuelve en un TStringList (pasado por referencia) todas las subcadenas separadas por un caracter separador contenidas en un string. La función devuelve el número de "tokens" encontrados en la cadena.
De la ayuda de Delphi:
Cita:
En el parámetro "Separators" se usan como separadores (además de los
caracteres que deseemos) los retornos de carro, nueva línea y las
comillas (simples o dobles), aunque en un string entre comillas estos
caracteres se ignoran hasta el final de la cadena entrecomillada.
El parámetro "WhiteSpace" es un conjunto de caracteres que van a ser
ignorados al parsear el contenido de la cadena si se encuentran al
principio de la mima.
La función no limpia el contenido de la lista, sólo añade las cadenas
parseadas a cualquier contenido anterior de la misma. Tampoco añade
cadenas vacías (empty strings) al contenido.
|
Ejemplo:
Código Delphi
[-]
function GetAllTokens(const sCadena: string; cSeparador: char;
var Lista: TStrings; bLimpiarLista: Boolean): Integer;
begin
if bLimpiarLista then
Lista.Clear;
Result := ExtractStrings([cSeparador], [' '], PAnsiChar(sCadena), Lista);
end;
Un saludo