1
Even making all these conditions, my database is responding in a strange way, because literally what I am selecting, is in every line of my file .txt, returns everything, including empty spaces, which was not to occur.
Follows the code:
//while para ler o txt e definir as variáveis.
  AssignFile(txt, edtCaminho.Text);
  Reset(txt);
  while not eof(txt) do
  begin
    Readln(txt, lTemp);
    inc(i);
    with DataModule1.ZQuery1 do
    begin
      if (copy(lTemp, 23, 3) = 'GNF') and (copy(lTemp, 39, 3) = 'COO') then
      begin
        gnf := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 3) = 'CDC' then
      begin
        cdc := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 14, 22) = 'NÃO É DOCUMENTO FISCAL' then
      begin
        ndocf := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 10, 29) = 'COMPROVANTE CRÉDITO OU DÉBITO' then
      begin
        comp := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 22, 6) = 'CARTÃO' then
      begin
        cartao := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 24, 3) = 'VIA' then
      begin
        via := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 3) = 'COO' then
      begin
        coo := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 15) = 'Valor da compra' then
      begin
        vlcompra := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 18) = 'Valor do pagamento' then
      begin
        vlpag := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 18, 4) = 'REDE' then
      begin
        rede := copy(lTemp, 1, 48);
      end;
      if (copy(lTemp, 14, 13) = 'VISA ELECTRON') or (copy(lTemp, 17, 7) = 'MAESTRO') then
      begin
        band := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 7) = 'COMPROV' then
      begin
        comprov := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 5) = 'ESTAB' then
      begin
        estab := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 19, 4) = 'TERM' then
      begin
        term := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 15) = 'NUMERO PARCELAS' then
      begin
        numparc := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 6) = 'CARTAO' then
      begin
        cartao2 := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 11) = 'AUTORIZACAO' then
      begin
        auto := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 4) = 'ARQC' then
      begin
        arqc := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 5, 29) = 'TRANSACAO AUTORIZADA MEDIANTE' then
      begin
        trans := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 5, 20) = 'USO DE SENHA PESSOAL' then
      begin
        usodesp := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 3) = '---' then
      begin
        traco := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 8) = 'BEMATECH' then
      begin
        imp := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 6) = 'VERSÃO' then
      begin
        versao := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 3) = 'QQQ' then
      begin
        qqq := copy(lTemp, 1, 48);
      end;
      if copy(lTemp, 1, 3) = 'FAB' then
      begin
        fab := copy(lTemp, 1, 48);
      end;
      DataModule1.Zquery1.Close;
      DataModule1.ZQuery1.SQL.Clear;
      DataModule1.ZQuery1.SQL.Add('INSERT INTO lercartao(lgnf, lcdc, lndocf, lcomp, lcartao, lvia, lcoo, lvlcompra, lvlpag, lrede, lband, lcomprov, lestab, lterm, lnumparc, lcartao2, lauto, larqc, lusodesp, ltraco, limp, lversao, lqqq, lfab)');
      DataModule1.ZQuery1.SQL.Add('VALUES (:pgnf, :pcdc, :pndocf, :pcomp, :pcartao, :pvia, :pcoo, :pvlcompra, :pvlpag, :prede, :pband, :pcomprov, :pestab, :pterm, :pnumparc, :pcartao2, :pauto, :parqc, :pusodesp, :ptraco, :pimp, :pversao, :pqqq, :pfab)');
      DataModule1.ZQuery1.ParamByName('pgnf').AsString := gnf;
      DataModule1.ZQuery1.ParamByName('pcdc').AsString := cdc;
      DataModule1.ZQuery1.ParamByName('pndocf').AsString := ndocf;
      DataModule1.ZQuery1.ParamByName('pcomp').AsString := comp;
      DataModule1.ZQuery1.ParamByName('pcartao').AsString := cartao;
      DataModule1.ZQuery1.ParamByName('pvia').AsString := via;
      DataModule1.ZQuery1.ParamByName('pcoo').AsString := coo;
      DataModule1.ZQuery1.ParamByName('pvlcompra').AsString := vlcompra;
      DataModule1.ZQuery1.ParamByName('pvlpag').AsString := vlpag;
      DataModule1.ZQuery1.ParamByName('prede').AsString := rede;
      DataModule1.ZQuery1.ParamByName('pband').AsString := band;
      DataModule1.ZQuery1.ParamByName('pcomprov').AsString := comprov;
      DataModule1.ZQuery1.ParamByName('pestab').AsString := estab;
      DataModule1.ZQuery1.ParamByName('pterm').AsString := term;
      DataModule1.ZQuery1.ParamByName('pnumparc').AsString := numparc;
      DataModule1.ZQuery1.ParamByName('pcartao2').AsString := cartao2;
      DataModule1.ZQuery1.ParamByName('pauto').AsString := auto;
      DataModule1.ZQuery1.ParamByName('parqc').AsString := arqc;
      DataModule1.ZQuery1.ParamByName('pusodesp').AsString := usodesp;
      DataModule1.ZQuery1.ParamByName('ptraco').AsString := traco;
      DataModule1.ZQuery1.ParamByName('pimp').AsString := imp;
      DataModule1.ZQuery1.ParamByName('pversao').AsString := versao;
      DataModule1.ZQuery1.ParamByName('pqqq').AsString := qqq;
      DataModule1.ZQuery1.ParamByName('pfab').AsString := fab;
      DataModule1.ZQuery1.ExecSQL;
    end;
  end;
  CloseQuery;
  Closefile(txt);
  //relatório query
  DataModule1.ZQuery2.Close;
  DataModule1.ZQuery2.SQL.Clear;
  DataModule1.ZQuery2.SQL.Add('SELECT * FROM lercartao LIMIT 0, '+ IntToStr(i));
  DataModule1.ZQuery2.Open;
However, when he inserts the data into my databank, he shows me this:

And it goes through 255 more records, like cascading, showing each line that the while traveled, as if it were only travelling to my condition and returning the while.
Why? Could it be a problem in my Insert? or could it be a problem with my code? Any ideas?
Updating
           xxxxxxxxxxxx
          xxxxxxxxxxxxxxxxxxxxxxx 
 PCA. xxxxxxxxxxxxxxx, CENTRO MOSSORO-RN
CNPJ:xxxxxxxxxxxxxxxxx  
IE:xxxxxxxxxxxxxxxxxxx        
------------------------------------------------
05/12/2013 17:34:07   GNF:xxxxxx      COO:xxxxxx
CDC:0006
             NÃO É DOCUMENTO FISCAL             
         COMPROVANTE CRÉDITO OU DÉBITO          
                     CARTAO                     
                     1ªVIA                      
COO do documento vinculado:               xxxxxx
Valor da compra  R$                        63,35
Valor do pagamento  R$                     63,35
                 REDE                           
              MASTERCARD                        
COMPR:xxxxxxxx4    VALOR:        63,35          
ESTAB:xxxxxxxxx PLASTIJxxxxx                    
xxxxxxxxxxxxxxxxx TERM:PV834358/050075          
NUMERO PARCELAS : 02                            
CARTAO: xxxx.xxxx.xxxx.xxxx                     
AUTORIZACAO: xxxxxx                             
ARQC:xxxxxxxxxxxxxxxxx                          
    TRANSACAO AUTORIZADA MEDIANTE               
    USO DE SENHA PESSOAL.                       
                               (SiTef)          
------------------------------------------------
BEMATECH xxxxxxxxxxxxxxxxxxxxx
VERSÃO:xxxxxxxx ECF:xxx LJ:xxxx
QQQQQQQQQxxxxxxx 05/12/2013 17:34:13 
FAB:xxxxxxxxxxxxxxxxxxxxx 
Follow the file text as requested.
The X and substitution as there is information personal of the company, but it is style this. If there is any doubt just speak.   
Put a piece of txt, 5 lines is enough.
– Filipe.Fonseca