Re: RES: RES: [delphi-br] Importação de Arqui vo
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
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]