Puedes Usar esta otra:
Ejemplo de uso:
Texto:='aaaaa,bbbbb,ccccccccc,dddddd'
For bucle:=0 to SeparaCount(Texto,',')
do ShowMessage(Separa(Texto,',',bucle) );
Código Delphi
[-]
Function Separa(Linea: String; Separador: String; Indice: Integer): String;
var
aa,ll: Integer;
inici,conta: Integer;
begin
ll:=length(separador);
Result := '';
conta:=0;
if copy(linea,1,ll)=separador then linea:=copy(linea,2,length(linea));
if not(copy(linea,length(linea)-ll+1,ll)=separador) then Linea:=Linea+Separador;
inici:=1;
For aa:=1 to length(linea) do begin
if copy(linea,aa,length(separador))=separador
then begin
conta:=conta+1;
if conta=indice then begin
Result := copy(linea,inici,(aa)-inici);
Break;
end;
inici:=aa+ll;
end;
end;
end;
Function SeparaCount(Linea: String; Separador: String): Integer;
var
aa: Integer;
begin
if EsVuit(linea) then result:=0 else result:=1;
For aa:=2 to length(linea)-1
do if separador=copy(linea,aa,length(separador)) then result:=result+1;
end;
Saludos.