PDA

Ver la Versión Completa : Hacer copy pero un poco diferente


Paulao
17-06-2008, 16:27:18
Tengo una duda. Como hago para hacer un copy asi:
Mi string abajo

1 00044313020078 T4 [T:4 ] CAMISA 1 x 63,00 63,00

Mire que la palabra camisa, tiene 6 caracteres o 6 posiciones,
pero ella puede tener hasta 26 posicione. Se tiene las 26, entoncs,
la parte 1 x 63,00 63,00 va a ser escribido en la linea
abajo. Pero yo no se como viene la Descricion(camisa) si viene con
6, 8, 15, 26 o qualquer cantidad. Mi pregunta es: Como hago un
copy o otro comando para hacer una copia asi:
Descricion + Cantidad + Precio? Gracias desde ahora!!!

Caro
17-06-2008, 17:30:08
Hola Paulao, lo que yo haría seria cargar la cadena a un StringList y recorrer desde final hasta llegar a la descripción.


var
Cadena : String;
StringList : TStringList;
begin
StringList := TStringList.Create;

Cadena := '1 00044313020078 T4 [T:4 ] CAMISA 1 x 63,00 63,00 ';
StringList.Delimiter := #32;
StringList.DelimitedText := Cadena;

for i:=StringList.Count-1 downto 0 do
begin
if StringList[i]='x' then
begin
showmessage('La descripción es: '+ StringList[i-2]);
break;
end
else
showmessage('Los ultimos valores: '+StringList[i]);
end;
end;


Saluditos

Paulao
17-06-2008, 18:01:10
Solo una pregunta ante e testar. Por que i-2? Este campo cantidad puede tener una posicion o tres(maximo).

Paulao
17-06-2008, 18:35:39
Entedi ahora. Estas bien hasta ahora. Gracias po todo. La linea i-2, etendi que es los espacios que va saltar para tener la descripcion. Gracias caro!!!!

Gambito
18-06-2008, 00:29:22
hola Paulao.

Otra forma de hacerlo seria con Expressiones Regulares.

ahora no alcanzo a probarlo, pero me parece una mejor alternativa.

mañana te paso un ejemplito.

suerte.