Re: RES: RES: [delphi-br] Importação de Arqui vo

2010-07-14 Por tôpico Daniel Azevedo
blz Ralp  a rotina ... mas nao testei pq fiz meio de cabeça sem usar o 
delphi
mas a ideia acho q é essa mesmo

while not Eof ( arq ) do
begin
  readln(arq,linha)
  for i:= 0 to Length(linha) do
  begin
  // verifica se é diferente de 
 if linha[i] '' then
 begin
  //== Verifica se a proxima poscicao é , que 
indica o final do campo
if (linha[i] + linha[i+1])  ',' then
   valorValido := valor + linha[i]
else
begin
  // Trate o valor aki, grave no banco de dados
end;
 end;
  end;
end;


Ralp Alves Bezerra escreveu:
  

 Desculpe Daniel, troquei o seu nome pelo do Walter.

 Não sei o que houve aqui em meu micro. Meu outlook parou de funcionar 
 e não consigo recuperar minhas mensagens.

 Poderia me enviar novamente a rotina?

 Abraço.

 De: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 [mailto:delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br] Em nome de Daniel Azevedo
 Enviada em: terça-feira, 13 de julho de 2010 17:24
 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Assunto: Re: RES: [delphi-br] Importação de Arquivo

 A rotina q te mandei faz justamente isso, ignora as virgulas
 pega a Aspas + a virgula , para identificar o final do campo valido
 quero dizer... foi esta a intenção
 mais a noite vou estar com o delphi e posso fazer a rotina funcionar
 caso ela nao tenha funcionado

 se ate la nao tiver resolvido eu monto uma e ja faço os testes
 e te entrego funfando

 Walter Chagas (Bol) escreveu:
 
 
  é mas e a virgula dos valores decimais??
 
  É um enigma essa parada daí.
 
  []s
 
 
  Walter Alves Chagas Junior
  Belo Horizonte - MG - Brazil
  wchag...@bol.com.br mailto:wchagasj%40bol.com.br 
 mailto:wchagasj%40bol.com.br mailto:wchagasj%40bol.com.br
  http://delphitocorporerm.blogspot.com/
  http://twitter.com/wchagas
  MSN: whitesock...@hotmail.com mailto:whitesockets%40hotmail.com 
 mailto:whitesockets%40hotmail.com mailto:whitesockets%40hotmail.com
  SKYPE: WalterChagasJr
 
  - Original Message -
  From: Marcelo
  To: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br
  Sent: Tuesday, July 13, 2010 5:04 PM
  Subject: Res: RES: [delphi-br] Importação de Arquivo
 
  Já pensou em dar um StringReplace nas , trocando por ; ai voce
  teria um
  separador padrão ai facaria muito mais facil de trabalhar
 
  
  De: Ralp Alves Bezerra ral...@gmail.com mailto:ralprd%40gmail.com 
 mailto:ralprd%40gmail.com mailto:ralprd%40gmail.com
  Para: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br
  Enviadas: Terça-feira, 13 de Julho de 2010 16:09:57
  Assunto: RES: [delphi-br] Importação de Arquivo
 
  Não estou conseguindo montar uma rotina para pegar os dados contidos
  dentro
  das aspas duplas e delimitadas por vírgula.
 
  Existe um campo no formato 100.000,00 que também contém vírgulas 
 em seu
  conteúdo.
 
  De: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br
  mailto:delphi-br%40yahoogrupos.com.br
  [mailto:delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br
  mailto:delphi-br%40yahoogrupos.com.br] Em
  nome de Rubem Nascimento da Rocha
  Enviada em: terça-feira, 13 de julho de 2010 15:54
  Para: delphi-br
  Assunto: RE: [delphi-br] Importação de Arquivo
  Prioridade: Alta
 
  Qual é exatamente a sua dificuldade?
 
  Sds.
 
  To: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br
  mailto:delphi-br%40yahoogrupos.com.br
  mailto:delphi-br%40yahoogrupos.com.br
  From: ral...@gmail.com mailto:ralprd%40gmail.com 
 mailto:ralprd%40gmail.com mailto:ralprd%40gmail.com
  mailto:ralprd%40gmail.com
  Date: Tue, 13 Jul 2010 15:50:44 -0300
  Subject: [delphi-br] Importação de Arquivo
 
  Nobres colegas, estou tentando importar para o meu banco de dados um
  arquivo
  no formato txt com o formato abaixo:
 
  
 601,029,201000,02,01,20100512,12050002,201005,04,122,0003,2
  ,002,,33901400,100.000,00
 
  
 601,029,201000,02,01,20100517,17050003,201005,04,122,0003,2
  ,002,,33901400,130.00
 
  
 601,029,201000,02,01,20100517,17050004,201005,04,122,0003,2
  ,002,,33901400,1.000,00
 
  
 601,029,201000,02,01,20100524,24050005,201005,04,122,0003,2
  ,003,,33903000,10.000,00
 
  
 601,029,201000,03,01,20100503,03050009,201005,04,122,0003,2
  ,006,,33903900,100,00
 
  Já vasculhei a net e até o momento ainda não consegui nenhum êxito.
 
  Algum dos nobres colegas já efetuou este tipo de importação com um 
 arquivo
  neste formato?
 
  Estou utilizando Delphi 7/Firebird 2.1
 
  Grato.
 
  Ralp Alves
 

 __ 

Re: Res: RES: [delphi-br] Importação de Arqui vo

2010-07-13 Por tôpico Darkzad
  Acho que você pode usar a função ExtractStrings. Ela é parcida com a 
função explode do PHP e é nativa do Delphi.

function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: 
PChar; Strings: TStrings): Integer;

* Separator - É um array onde você pode definir vários separadores
* WhiteSpace - É um Array onde você define os caracteres que devem
  ser Ignorados quando ocorrerem no inicio da String.
* Content - É a String de onde se deseja extrais as substrings

A Função retorna o número de Substrings extraídas.

Veja um pequeno exemplo de utilização:

procedure TForm1.Button1Click(Sender: TObject);
const
SDados = 'Cristiano Martins Alves; 28 Anos; Casado; São Paulo; SP';
var
Lista: TStringList;
iRetorno:Integer;
begin
Lista := TStringList.Create;
try
iRetorno := ExtractStrings([';'],[' '],PChar(sDados),Lista);
if iRetorno  0 then
ShowMessage(Lista.Text);
finally
FreeAndNil(Lista);
end;
end;

Desde já
DarkZad


Em 13-07-2010 16:25, Wagne®_Fix escreveu:

 Eu uso COPY, as pessoas podem achar complicado mas eu me dou muito 
 bem... Tem um
 cliente meu que importa mais ou menos uns 1000 dados diários para o 
 Banco e
 nunca deu problema...

 AssignFile(arq,g);
 Reset ( arq );
 ReadLn ( arq, linha );
 Tot := 0;
 AuxTot := 0;

 while not Eof ( arq ) do begin
 AuxLinha := '';
 AuxPed := '';
 AuxChassi := '';
 AuxLinha := Copy(linha,53,1);
 AuxPed := Copy(linha,1,10);
 AuxChassi := Copy(linha,51,10);
 end;

 
 De: Ralp Alves Bezerra ral...@gmail.com mailto:ralprd%40gmail.com
 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Enviadas: Terça-feira, 13 de Julho de 2010 16:09:57
 Assunto: RES: [delphi-br] Importação de Arquivo

 Não estou conseguindo montar uma rotina para pegar os dados contidos 
 dentro
 das aspas duplas e delimitadas por vírgula.

 Existe um campo no formato 100.000,00 que também contém vírgulas em seu
 conteúdo.

 De: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 [mailto:delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br] Em
 nome de Rubem Nascimento da Rocha
 Enviada em: terça-feira, 13 de julho de 2010 15:54
 Para: delphi-br
 Assunto: RE: [delphi-br] Importação de Arquivo
 Prioridade: Alta

 Qual é exatamente a sua dificuldade?

 Sds.

 To: delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br
 From: ral...@gmail.com mailto:ralprd%40gmail.com 
 mailto:ralprd%40gmail.com
 Date: Tue, 13 Jul 2010 15:50:44 -0300
 Subject: [delphi-br] Importação de Arquivo

 Nobres colegas, estou tentando importar para o meu banco de dados um 
 arquivo
 no formato txt com o formato abaixo:

 601,029,201000,02,01,20100512,12050002,201005,04,122,0003,2
 ,002,,33901400,100.000,00

 601,029,201000,02,01,20100517,17050003,201005,04,122,0003,2
 ,002,,33901400,130.00

 601,029,201000,02,01,20100517,17050004,201005,04,122,0003,2
 ,002,,33901400,1.000,00

 601,029,201000,02,01,20100524,24050005,201005,04,122,0003,2
 ,003,,33903000,10.000,00

 601,029,201000,03,01,20100503,03050009,201005,04,122,0003,2
 ,006,,33903900,100,00

 Já vasculhei a net e até o momento ainda não consegui nenhum êxito.

 Algum dos nobres colegas já efetuou este tipo de importação com um arquivo
 neste formato?

 Estou utilizando Delphi 7/Firebird 2.1

 Grato.

 Ralp Alves

 __
 CONVERSE COM SEUS AMIGOS E OS VEJA PELA WEBCAM NO MESSENGER. CLIQUE AQUI E
 VEJA COMO.
 http://www.windowslive.com.br/public/tip.aspx/view/84?product=2
 http://www.windowslive.com.br/public/tip.aspx/view/84?product=2ocid=WLCRM: 
 http://www.windowslive.com.br/public/tip.aspx/view/84?product=2ocid=WLCRM:
 Live:Hotmail:Tagline:senDimensao:CONVERSECO85:-
 ocid=WLCRM:Live:Hotmail:Tagline:senDimensao:CONVERSECO85:-

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

 [As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]