Delphi - extraer subcadena entre dos caracteres de un strin

 
Vista:
sin imagen de perfil

extraer subcadena entre dos caracteres de un strin

Publicado por nikotina (15 intervenciones) el 22/10/2009 18:48:10
Hola a todos.

Nesecito extrar ena subcadena de un string que esten entre dos caracteres.

Por ejemplo:

tengo la cadena '(1,"ar",2)'
y nesecito guardar en tres variables diferentes:

var1:='1';
var2:='"ar"';
var3:='2';

osea, aplicar alguna funcion que extraiga lo que hay entre '(' y ','. Luego lo que existe entre ',' y ','. y por ultimo lo que existe entre ',' y ')'

Espero poderme haber explicado bien y desde ya muchas gracias a todos por su tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:extraer subcadena entre dos caracteres de un st

Publicado por E.T. (1244 intervenciones) el 24/10/2009 00:33:12
Un procedimiento algo sencillo

procedure TForm1.Descompone(cadena: string; var cadena1, cadena2,cadena3: string);
var i, j:integer;
begin
//
j:=2;
i:=pos(',', cadena); // (1,"ar",2)
cadena1:=copy(cadena, j, i-j);
j:=i+1;
i:=PosEx(',', cadena, j);
cadena2:=copy(cadena, j, i-j);
j:=i+1;
i:=length(cadena);
cadena3:=copy(cadena, j, i-j);
end;

y para usarlo haz algo como esto

procedure TForm1.Button1Click(Sender: TObject);
var cad1, cad2, cad3:string;
begin
Descompone(Edit1.Text, cad1,cad2, cad3);
Edit2.Text := cad1+', '+cad2+', '+cad3;
end;

Las variables del click del boton guardan el resultado, que se guarda de nuevo en otro edit, cad1, cad2, cad3, tienen 1, "ar", y 2 respectivamente,
ademas de que puede haber cualquier numero en lugar del 1 o el 2, y la cadena de en medio tambien puede ser más grande, siempre y cuando sigas el mismo formato
(XX, "cadena", YY)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar