Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guνa de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicaciσn: Rua D 31 Casa 1 - Inhoaνba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Duda con archivos text

Seρores, tengo un archivo text y gustaria correr el archivo y buscar algunas palabras y grabar en un Memo o un archivo text mismo, pero ahora "parseado". En mi archivo abajo, mi gustaria de sacar los valores de las columnas: CCF:, COO:, NOME:, CNPJ/CPF CONSUMIDOR: Ahora despues de la string: ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$), mi gustaria de pegor todo en otra linea asta la palabra SUBTOTAL R$. Abajo com es mi texto(): Es un texto grande, pero yo quizo poner asi, para usteds teneren una vision mejor y real de la situacion. Mire que nen siempre tenemos NOME: y CNPJ/CPF CONSUMIDOR:

Cita:
GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:22:32V CCF:001440 COO:002121
CNPJ/CPF CONSUMIDOR: 112.141.418-46
NOME: Sergio Zabeu
CUPOM FISCAL
ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$)
1 00044313020078 T4 [T:4 ] CAMISA M/L S/B LISTRADO ON
1 x 63,00 63,00
2 00044313020193 T4 [T:4 ] CAMISA M/L S/B LISTRADO ON
1 x 63,00 63,00
3 00044368030099 T4 [T:4 ] CAMISA M/L ALGODAO LISTR 8
1 x 75,00 75,00
4 00033406030195 T4 [T:48L] CALCA S/ PREGA BOLSO FACA
1 x 108,00 108,00
——————————————————
SUBTOTAL R$ 309,00
DESCONTO ICMS: -9,00
——————————————————
TOTAL R$ 300,00
A VISTA 300,00
T4=18,00%
—————————————————————————————————————————————————————————
COMPRE MAIS E PAGUE MENOS
=========================
Visite nosso Site na Internet
http://www.garbo.com.br
————————————————————————————————————————————————
—————————————————————————————————————————————————————————
[ DGsuTF8IM3(xi6Sm(exGGEm8G1YKkVa3quCZq@?3A3RuWv ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**PKM*KH 02/05/2008 16:22:50V
FAB: SW010500000000000232 BR




GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:23:13V CCF:001441 COO:002122
CUPOM FISCAL
ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$)
1 00104204110126 T4 [T:48 ] BERMUDA SARJA S/P BOL/FACA
1 x 72,00 72,00
——————————————————
TOTAL R$ 72,00
CARTAO 72,00
T4=18,00%
—————————————————————————————————————————————————————————
COMPRE MAIS E PAGUE MENOS
=========================
Visite nosso Site na Internet
http://www.garbo.com.br
————————————————————————————————————————————————
—————————————————————————————————————————————————————————
[ zGPIWbdTReNU8ZQj?zUhFJSZFwfyBfAEmsUtA64bqhtWYC ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**P@P@KH 02/05/2008 16:23:27V
FAB: SW010500000000000232 BR




GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:23:41V CCF:001442 COO:002123
CUPOM FISCAL
ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$)
1 00144075030190 T4 [T:M ] MEIA ALGODAO R/1400-01 REF
1 x 18,00 18,00
2 00144075030060 T4 [T:M ] MEIA ALGODAO R/1400-01 REF
1 x 18,00 18,00
3 00144075030030 T4 [T:M ] MEIA ALGODAO R/1400-01 REF
1 x 18,00 18,00
item cancelado: 3 -18,00
4 00014047020173 T4 [T:56M] COSTUME 3 BOT. C/ 2 ABERT.
1 x 330,00 330,00
——————————————————
TOTAL R$ 366,00
A VISTA 366,00
T4=18,00%
—————————————————————————————————————————————————————————
COMPRE MAIS E PAGUE MENOS
=========================
Visite nosso Site na Internet
http://www.garbo.com.br
————————————————————————————————————————————————
—————————————————————————————————————————————————————————
[ y(@PMzSEFYkQZ8U@7WQ99cZS*Uh7@JUr?hcnakgY@EpC*R ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**HH$HKH 02/05/2008 16:24:33V
FAB: SW010500000000000232 BR




GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:24:43V CCF:001443 COO:002124
CUPOM FISCAL
ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$)
1 00014047020173 T4 [T:56M] COSTUME 3 BOT. C/ 2 ABERT.
1 x 330,00 330,00
——————————————————
SUBTOTAL R$ 330,00
DESCONTO ICMS: -9,50
——————————————————
TOTAL R$ 320,50
A VISTA 320,50
T4=18,00%
—————————————————————————————————————————————————————————
COMPRE MAIS E PAGUE MENOS
=========================
Visite nosso Site na Internet
http://www.garbo.com.br
————————————————————————————————————————————————
—————————————————————————————————————————————————————————
[ H(LveIQ3LGS6Sm(ByJ6r#MBQVQE?jv@IH91jZNKI1Sje3V ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**HC!HKH 02/05/2008 16:25:23V
FAB: SW010500000000000232 BR




GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:25:30V CCF:001443 COO:002125
CUPOM FISCAL
CANCELAMENTO

Cancelamento de Cupom Fiscal (CCF): 001443
COO do Cupom Fiscal cancelado: 002124
Total da operaηγo R$: 320,50
Desconto cancelado: 9,50
—————————————————————————————————————————————————————————
[ E(xZ?4htUxWrIcF#Was2wUfewf2CR(Fnz7muVPT4cF@k(N ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**HC!HKH 02/05/2008 16:25:31V
FAB: SW010500000000000232 BR




GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:25:55V CCF:001444 COO:002126
CUPOM FISCAL
ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$)
1 00044313020076 T4 [T:5 ] CAMISA M/L S/B LISTRADO ON
1 x 63,00 63,00
——————————————————
SUBTOTAL R$ 63,00
acrιscimo 10,50
——————————————————
TOTAL R$ 73,50
A VISTA 73,50
T4=18,00%
—————————————————————————————————————————————————————————
COMPRE MAIS E PAGUE MENOS
=========================
Visite nosso Site na Internet
http://www.garbo.com.br
————————————————————————————————————————————————
—————————————————————————————————————————————————————————
[ ?(?Vh3jGJrim(BydALmcc9@1p8MQZu8CXMBkjnqrdrnJIp ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**H*$*HH 02/05/2008 16:26:21V
FAB: SW010500000000000232 BR




GARBO S/A
RUA ACHILLES ORLANDO CURTOLO, 551
SAO PAULO - SP
C.N.P.J.: 61.322.970/0001-06 I.E.: 100.499.619.113
FITA-DETALHE
Emissγo: 06/06/2008 10:43:39V
DATAi=01/05/2008 DATAf=06/06/2008
—————————————————————————————————————————————————————————
02/05/2008 16:26:39V CCF:001445 COO:002127
CNPJ/CPF CONSUMIDOR: 112.141.418-46
NOME: Sergio Zabeu
CUPOM FISCAL
ITEM CΣDIGO ST DESCRIΗΓO VL ITEM(R$)
1 00043997110110 T4 [T:5 ] CAMISA M/L S/B POPELINE LI
1 x 54,00 54,00
——————————————————
SUBTOTAL R$ 54,00
DESCONTO ICMS: -0,40
——————————————————
TOTAL R$ 53,60
A VISTA 53,60
T4=18,00%
—————————————————————————————————————————————————————————
COMPRE MAIS E PAGUE MENOS
=========================
Visite nosso Site na Internet
http://www.garbo.com.br
————————————————————————————————————————————————
—————————————————————————————————————————————————————————
[ gG7zDPasuC4AdyB(mvAffedaRB#m(oBT2#JiS4NC(d1oR* ]
SWEDA IF ST100
ECF-IF VERSΓO: 01.00.04 ECF: 001 LJ: 0001
OPR: Garbo
**H**$HH 02/05/2008 16:28:09V
FAB: SW010500000000000232 BR
Responder Con Cita
  #2  
Antiguo 09-06-2008
Avatar de Neftali [Germαn.Estιvez]
Neftali [Germαn.Estιvez] Neftali [Germαn.Estιvez] is offline
[becario]
 
Registrado: jul 2004
Ubicaciσn: Barcelona - Espaρa
Posts: 18.275
Poder: 10
Neftali [Germαn.Estιvez] Es un diamante en brutoNeftali [Germαn.Estιvez] Es un diamante en brutoNeftali [Germαn.Estιvez] Es un diamante en bruto
ΏY exactamente cual es el problema?
Parsear el archivo es sencillo.
Puedes cargarlo en un TStrings/Memo y recorrerlo lνnea a lνnea buscando los caracteres o palabras que necesites.

Utiliza AnsiPos para encontrar las cedenas: CCF: COO: ...

Aquν te paso un ejemplos sencillo a ver si es esto lo que necesitas.
Archivos Adjuntos
Tipo de Archivo: zip Parse sample.zip (2,8 KB, 17 visitas)
__________________
Germαn Estιvez => Web/Blog
Guνa de estilo, Guνa alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Mαs tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 09-06-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicaciσn: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Paulao, te pongo otro ejemplo.

Cσdigo Delphi [-]
function TForm1.Contenido(Linea, Cadena : String; PosInicio:Integer): String;
var
 CadRestante : String;
 PosFinal       : Integer;
 Resultado     : String;
begin
 CadRestante := Copy(Linea, PosInicio+Length(Cadena), Length(Linea));
 if CadRestante[1] =' ' then
  CadRestante := Copy(CadRestante, 2, Length(CadRestante)-1);
 PosFinal := Pos(' ', CadRestante);
 if PosFinal >0 then
  Resultado := Copy(CadRestante, 1, PosFinal-1)
 else
  Resultado := Copy(CadRestante, 1, Length(CadRestante));
 Result := Resultado;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 Archivo  : TextFile;
 Linea    : String;
 BandItem : Boolean;
 PosInicio, PosItem  : Integer;
 Cont : String;
begin
 AssignFile(Archivo, 'archivo.txt');
 Reset(Archivo);
 BandItem := False;
 While not Eof(Archivo) do
  begin
   Readln(Archivo, Linea);
 
   PosItem := Pos('ITEM', Linea);
   if (PosItem<>0) or (BandItem) then
    begin
     BandItem := True;
     Memo1.Lines.Add(Linea);
     if Pos('SUBTOTAL', Linea)>0 then
      BandItem := False;
    end
   else
    begin
     PosInicio := Pos('CCF:', Linea);
     if PosInicio>0 then
      begin
       showmessage(Contenido(Linea, 'CCF:',PosInicio));
       PosInicio := 0;
      end;
     PosInicio := Pos('COO:', Linea);
     if PosInicio>0 then
      begin
       showmessage(Contenido(Linea, 'COO:',PosInicio));
       PosInicio := 0;
      end;
     PosInicio := Pos('CNPJ/CPF CONSUMIDOR:', Linea);
     if PosInicio>0 then
      begin
       showmessage(Contenido(Linea, 'CNPJ/CPF CONSUMIDOR:',PosInicio));
       PosInicio := 0;
      end;
     PosInicio := Pos('NOME:', Linea);
     if PosInicio>0 then
      begin
       showmessage(Contenido(Linea, 'NOME:',PosInicio));
       PosInicio := 0;
      end;
    end;
  end;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 09-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicaciσn: Rua D 31 Casa 1 - Inhoaνba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Bueno, voy a intentarlo.
Responder Con Cita
  #5  
Antiguo 09-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicaciσn: Rua D 31 Casa 1 - Inhoaνba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Bueno, esta ultima funcion, me lo tras todo el contenido del archivo. Yo tengo dificuldad de trabajar con archivos text. O que yo quero es hacer con que los valores de CCF, COO, CPF venga un al lado de otro, formando una string y abajo viene los valores de itenes, asi:

Cita:
0014400022011214141846 aca tiene CCF(6 posiciones + COO + CPF)

y estes son los itenes que fueron vendido en el CCF arriba
00044313020078
00044313020193
00044368030099
00033406030195
Responder Con Cita
  #6  
Antiguo 10-06-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicaciσn: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo Paulao, la primera funciσn no he cambiado nada, lo que esta dentro del boton si, te pongo el codigo, no se si te he entendido bien, pero de hecho tienes que seguir haciendo mas controles.

Cσdigo Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
 Archivo  : TextFile;
 Linea    : String;
 BandItem,
 BandCabecera : Boolean;
 PosInicio, PosItem, PosIt  : Integer;
 CadItem,
 Cadena   : String;
begin
 AssignFile(Archivo, 'pru.txt');
 Reset(Archivo);
 BandItem := False;
 BandCabecera := False;
 Cadena := '';
 While not Eof(Archivo) do
  begin
   Readln(Archivo, Linea);
   PosItem := Pos('ITEM', Linea);
   if (PosItem<>0) or (BandItem) then
    begin
     BandItem := True;
     if BandCabecera=False then
      begin
       Memo1.Lines.Add(Cadena);
       BandCabecera := True;
      end;
     CadItem := Copy(Linea, 3, Length(Linea));
     PosIt := Pos(' ',CadItem);
     if PosIt>0 then
      CadItem := Copy(CadItem, 1, PosIt-1);
     Memo1.Lines.Add(CadItem);
     if Pos('SUBTOTAL', Linea)>0 then
      BandItem := False;
    end
   else
    begin
     PosInicio := Pos('CCF:', Linea);
     if PosInicio>0 then
      begin
       Cadena := Cadena + Contenido(Linea, 'CCF:',PosInicio);
       PosInicio := 0;
      end;
     PosInicio := Pos('COO:', Linea);
     if PosInicio>0 then
      begin
       Cadena := Cadena + Contenido(Linea, 'COO:',PosInicio);
       PosInicio := 0;
      end;
     PosInicio := Pos('CNPJ/CPF CONSUMIDOR:', Linea);
     if PosInicio>0 then
      begin
       Cadena := Cadena + Contenido(Linea, 'CNPJ/CPF CONSUMIDOR:',PosInicio);
       PosInicio := 0;
      end;
     PosInicio := Pos('NOME:', Linea);
     if PosInicio>0 then
      begin
       Cadena := Cadena + Contenido(Linea, 'NOME:',PosInicio);
       PosInicio := 0;
      end;
    end;
  end;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 10-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicaciσn: Rua D 31 Casa 1 - Inhoaνba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Hola, caro, hizo este codigo y me lo da el resultado que yo quiero, con una excepcion. Necesito crear una forma de buscar los itenes tambiem y yo puedo tener un solo iten o mas, y ahora estoy viendo como hacer un for o while para llenar mi stringlist con los itenes. Esta ahora es mi duda.
Cita:
procedure TForm1.BitBtn4Click(Sender: TObject);
var
Arq: TextFile;
s,Path:String;
ccf,coo,cpf,nome:String;
Linha: TStringList;
PosIni,j: Integer;
begin
Linha := TStringList.Create;
Path := 'C:\Sweda\Destino\Teste.TXT';
AssignFile(Arq,Path);
Reset(Arq);
while not Eof(arq) do
begin
Readln(Arq,s);
j := AnsiPos('CCF:',s);
PosIni := Pos('CCF:',s);
if j <> 0 then
ccf := Copy(s, PosIni+5, 6);

j := AnsiPos('COO:',s);
PosIni := Pos('COO:',s);
if j <> 0 then
coo := Copy(s, PosIni+5,6);

j := AnsiPos('CNPJ/CPF CONSUMIDOR:',s);
PosIni := Pos('CNPJ/CPF CONSUMIDOR:',s);
if j <> 0 then
cpf := Copy(s, PosIni+21,14);

j := AnsiPos('NOME',s);
PosIni := Pos('NOME:',s);
if j <> 0 then
nome := Copy(s, PosIni+6, 35);

j := AnsiPos('CUPOM FISCAL',S);
if j <> 0 then
Linha.Add(ccf+coo+cpf+nome);
end;

Memo1.Lines.Add(Linha.Text);

CloseFile(Arq);
end;
Responder Con Cita
  #8  
Antiguo 10-06-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicaciσn: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Paulao, has probado mi codigo, el ultimo que puse, en el primer if "if (PosItem<>0) or (BandItem) then" justamente se obtiene los item que tienes en tu archivo como tu dijiste, desde la palabra ITEM hasta que aparezca un SubTotal. Pruebalo, como te dije en mi mensaje anterior, puede que tengas que controlar algunas cosas mas.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 10-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicaciσn: Rua D 31 Casa 1 - Inhoaνba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Hola caro, hizo si, pero viene muchas informaciones que no necesito. Viene las informaciones que yo quiero y otras tambienm por esto opte por este codigo que hizo, pero aun tiene cosas a hacer para que me lo de el resultado corecto.
Responder Con Cita
Respuesta



Normas de Publicaciσn
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El cσdigo vB estα habilitado
Las caritas estαn habilitado
Cσdigo [IMG] estα habilitado
Cσdigo HTML estα deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Ϊltimo mensaje
ftFmtMemo to text johurgi Varios 1 20-10-2006 17:45:01
Duda sobre Archivos enviados por medio de firebird sin guardarlo en la BD RONPABLO Firebird e Interbase 6 13-10-2006 23:49:44
Guardar lo que tengo en un Edit1.text y edit2.text en una base de datos firebird jorgeluisc Conexiσn con bases de datos 1 23-04-2006 18:29:28
Convertir Archivos DFM de binario a Texto (Text DFM) DiDi Varios 4 21-04-2005 19:39:43
duda sobre archivos de texto eduarcol Varios 4 05-02-2004 15:06:31


La franja horaria es GMT +2. Ahora son las 23:43:56.


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
Copyright 1996-2007 Club Delphi