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.