Me mande esse arquivo pr’eu analisá-lo.

Sds.

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Ralp Alves Bezerra
Enviada em: segunda-feira, 26 de julho de 2010 08:05
Para: delphi-br@yahoogrupos.com.br
Assunto: RES: [delphi-br] Importação ignora 1ª linha do arquivo

 

  

Pois é Rubem, desculpe por não citar seu nome. Foram tantas as pessoas que
tentaram ajudar que as vezes cometemos estes deslizes.

Já no caso da importação, aqui realmente ele não reconhece a primeira linha
do arquivo. Será que é por causa da extensão (.DCD)? Este é o padrão
utilizado pelo tribunal aqui do Ceará.

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 Rubem Rocha
Enviada em: sexta-feira, 23 de julho de 2010 15:21
Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
Assunto: RES: [delphi-br] Importação ignora 1ª linha do arquivo
Prioridade: Alta

Analisei o fonte (que por sinal, fui eu que implementei inicialmente) e até
rodei ele com um arquivo de exemplo que o Ralp mandou para mim na época. Não
vi nada de anormal. Ele sempre pega todas as linhas do texto.

Sds.

-----Mensagem original-----
De: delphi-br@yahoogrupos.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>
] Em
nome de Dirlei Dionísio
Enviada em: sexta-feira, 23 de julho de 2010 12:19
Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br>
<mailto:delphi-br%40yahoogrupos.com.br> 
Assunto: Re: [delphi-br] Importação ignora 1ª linha do arquivo

Ler código dentro de email é terrível. Se vc colocar o código no Pastebin (
http://pastebin.com) vai nos ajudar a te ajudar.

--
Dirlei Dionísio
Novo artigo: // Não comente seu código
http://MaisQueBomCodigo.blogspot.com

Em 23 de julho de 2010 10:11, Ralp Alves Bezerra <ral...@gmail.com
<mailto:ralprd%40gmail.com> 
<mailto:ralprd%40gmail.com> >escreveu:

>
>
> Nobres colegas,
>
> Recentemente tive um problema com a importação de um arquivo.
>
> Com a ajuda dos nobres colegas e o envio de um exemplo pelo Walter,
> consegui
> sanar o problema.
>
> A importação foi realizada. Porém, fazendo uma analise mais detalhada,
> notei
> que primeira linha do arquivo nunca é importada. Fica sempre faltando o
> primeiro registro do arquivo.
>
> Estou postando abaixo o código utilizado. Se alguns dos nobres colegas
> poder
> me ajudar fico grato.
>
> Abraço.
>
> unit ufAnaliseDados;
>
> interface
>
> uses
>
> Classes, Forms, DB, Controls, Grids, DBGrids, DBClient, DBXpress, FMTBcd,
>
> DBXAutoInc, Provider, SqlExpr, RXCtrls, RXDBCtrl, Buttons, ExtCtrls,
>
> XiPanel, Dialogs, JvDialogs, XiProgressBar;
>
> type
>
> TfrmSIMNE = class(TForm)
>
> XiPanel1: TXiPanel;
>
> btImportar: TSpeedButton;
>
> dbgDados: TDBGrid;
>
> DBGrid1: TDBGrid;
>
> srcDados: TDataSource;
>
> JvOpenDialog1: TJvOpenDialog;
>
> Barra: TXiProgressBar;
>
> procedure btImportarClick(Sender: TObject);
>
> private
>
> fDadosTratados: TStringList;
>
> fCdsDadosTratados: TClientDataSet;
>
> procedure PrepararDados;
>
> procedure AnalisarArquivo;
>
> procedure CriarDataSet;
>
> procedure LiberarDados;
>
> public
>
> constructor Create(AOwner: TComponent); override;
>
> destructor Destroy; override;
>
> end;
>
> var
>
> frmSIMNE: TfrmSIMNE;
>
> implementation
>
> uses SysUtils, uDM, uImportaProcesso;
>
> {$R *.dfm}
>
> { TfrmAnaliseDados }
>
> procedure TfrmSIMNE.CriarDataSet;
>
> var
>
> i: integer;
>
> lLinhaDados: TStringList;
>
> begin
>
> { Cria o ClientDataSet }
>
> fCdsDadosTratados := TClientDataSet.Create(Self);
>
> { Define os campos que o ClientDataSet terá }
>
> with fCdsDadosTratados.FieldDefs do
>
> for i := 1 to 16 do
>
> Add(Format('Campo%2.2d', [i]), ftString, 40);
>
> { Cria o ClientDataset com os campos definidos }
>
> fCdsDadosTratados.CreateDataSet;
>
> { Preenche o ClientDataSet com os dados tratados }
>
> lLinhaDados := TStringList.Create;
>
> try
>
> lLinhaDados.Delimiter := ',';
>
> lLinhaDados.QuoteChar := '"';
>
> while fDadosTratados.Count > 0 do
>
> begin
>
> fCdsDadosTratados.Append;
>
> lLinhaDados.DelimitedText := fDadosTratados[0];
>
> for i := 0 to 15 do
>
> fCdsDadosTratados.Fields[i].AsString := lLinhaDados[i];
>
> fDadosTratados.Delete(0);
>
> end;
>
> finally
>
> lLinhaDados.Free;
>
> end;
>
> { Vincula o ClientDataSet ao DataSource associado ao DBGrid }
>
> srcDados.DataSet := fCdsDadosTratados;
>
> end;
>
> procedure TfrmSIMNE.AnalisarArquivo;
>
> var
>
> lQtde, lCampos: integer;
>
> lArquivo, lLinhaDados: TStringList;
>
> sLinhaDados: string;
>
> begin
>
> If JvOpenDialog1.Execute then
>
> Begin
>
> lArquivo := TStringList.Create;
>
> try
>
> lArquivo.LoadFromFile(JvOpenDialog1.FileName);
>
> lCampos := 0;
>
> lLinhaDados := TStringList.Create;
>
> try
>
> lLinhaDados.Delimiter := ',';
>
> while lArquivo.Count > 0 do
>
> begin
>
> sLinhaDados := lArquivo[0];
>
> lLinhaDados.DelimitedText := sLinhaDados;
>
> lLinhaDados.QuoteChar := '"';
>
> lQtde := lLinhaDados.Count;
>
> if lCampos = 0 then
>
> lCampos := lQtde
>
> else if lQtde <> lCampos then
>
> raise Exception.CreateFmt(
>
> 'Quantidade de campos das linhas de dados é variável.' +
>
> sLineBreak + sLineBreak +
>
> sLinhaDados +
>
> sLineBreak + sLineBreak +
>
> '(%d <> %d).', [lQtde, lCampos])
>
> else
>
> fDadosTratados.Add(sLinhaDados);
>
> lArquivo.Delete(0);
>
> end;
>
> finally
>
> lLinhaDados.Free;
>
> end;
>
> finally
>
> lArquivo.Free;
>
> end;
>
> end;
>
> end;
>
> constructor TfrmSIMNE.Create(AOwner: TComponent);
>
> begin
>
> inherited Create(AOwner);
>
> PrepararDados;
>
> AnalisarArquivo;
>
> CriarDataSet;
>
> end;
>
> destructor TfrmSIMNE.Destroy;
>
> begin
>
> LiberarDados;
>
> inherited Destroy;
>
> end;
>
> procedure TfrmSIMNE.LiberarDados;
>
> begin
>
> if Assigned(fDadosTratados) then
>
> fDadosTratados.Free;
>
> if Assigned(fCdsDadosTratados) then
>
> begin
>
> fCdsDadosTratados.Close;
>
> fCdsDadosTratados.Free;
>
> end;
>
> end;
>
> procedure TfrmSIMNE.PrepararDados;
>
> begin
>
> fDadosTratados := TStringList.Create
>
> end;
>
> procedure TfrmSIMNE.btImportarClick(Sender: TObject);
>
> begin
>
> DM.cds_SIM601.Open;
>
> Try
>
> DM.cds_SIM601.DisableControls;
>
> fCdsDadosTratados.First;
>
> fCdsDadosTratados.DisableControls;
>
> Barra.Position:=0;
>
> Barra.Max:=fCdsDadosTratados.RecordCount;
>
> while not fCdsDadosTratados.Eof do
>
> Begin
>
> DM.cds_SIM601.Insert;
>
> DM.cds_SIM601.fieldbyname('Numero_NE').AsString
> :=fCdsDadosTratados.Fields[6].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Numero_Sub_Empenho').AsString
> :=fCdsDadosTratados.Fields[7].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Numero_NP').AsString
> :=fCdsDadosTratados.Fields[8].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Data_Ref_Doc').AsString
> :=fCdsDadosTratados.Fields[9].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Num_Doc_Caixa').AsString
> :=fCdsDadosTratados.Fields[10].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Data_NP').AsString
> :=fCdsDadosTratados.Fields[11].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Valor_NP').Value
> :=StrToFloat(StringReplace(fCdsDadosTratados.Fields[12].AsString, '.',
',',
> []));
>
>
>
DM.cds_SIM601.fieldbyname('NP_Num_CPF_Responsavel').AsString:=fCdsDadosTrata
> dos.Fields[14].AsString;
>
> DM.cds_SIM601.fieldbyname('NP_Nome_Resp_Pag').AsString
> :=fCdsDadosTratados.Fields[15].AsString;
>
> DM.cds_SIM601.Post;
>
> DM.cds_SIM601.ApplyUpdates(0);
>
> Barra.Position:=Barra.Position+1;
>
> fCdsDadosTratados.Next;
>
> end;
>
> finally
>
> DM.cds_SIM601.EnableControls;
>
> fCdsDadosTratados.EnableControls;
>
> Barra.Position:=0;
>
> frmImportaProc.lblArquivo.Caption:='Último Arquivo Importado: SIM 604';
>
> Close;
>
> end;
>
> end;
>
> end.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>




 



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

Responder a