Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Hacer copy pero un poco diferente (https://www.clubdelphi.com/foros/showthread.php?t=57491)

Paulao 17-06-2008 16:27:18

Hacer copy pero un poco diferente
 
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.

Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 11:54:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi