Ver Mensaje Individual
  #7  
Antiguo 15-06-2014
Jovalca Jovalca is offline
Miembro
NULL
 
Registrado: sep 2013
Ubicación: Madrid - España
Posts: 30
Reputación: 0
Jovalca Va por buen camino
Gracias de nuevo ecfisa.

Estoy con ello, controlando y probando mas cosas.

Ahora solo me viene una duda, como indicarle parar en el segundo delimitador para cuando tengo mas de dos valores.

Es decir, tengo esto: Dato 1 | Dato 2 || Dato 3. //He incluido un segundo delimitador para que no devuelva valores incorrectos.

Y el código para recogerlos es:

Código:
procedure TForm5.ListBox1DblClick(Sender: TObject);
const
  Delim1 = '|';
  Delim2 = '||';
begin
  with ListBox1 do
    If ItemIndex <> -1 Then
    begin
  Form1.LabeledEdit5.Text:= Copy(Items[ItemIndex],1,Pos(Delim1,Items[ItemIndex])-2);
  Form1.LabeledEdit6.Text:= Copy(Items[ItemIndex],Pos(Delim1,Items[ItemIndex])+2,Pos(Delim2,Items[ItemIndex])-3);
  Form1.LabeledEdit7.Text:= Copy(Items[ItemIndex],Pos(Delim2,Items[ItemIndex])+3,MaxInt);
end;
end;
El problema es que en el segundo, quiero indicarle que pare en el segundo delimitador -3 para eliminarlo, pero me devuelve lo siguiente, "Dato 2 || Dato 3".
He probado ha ponerle solo Delim2, a quitar el Pos, pero de estas formas no compila. También con AnsiPos pero hace lo mismo. Debo declarar simplemente Delim2 de otro modo para que pare ahí?

Gracias otra vez.
Responder Con Cita