Eu uso muito este tipo de rotina aqui, como o código aqui é protegido por normas da empresa, eu vou te passar o nucleo da rotina (a que faz a leitura da linha e pega somente os dados separados por tabulação. Dá uma analisada que você vai entender.
readln(fi, line); iLenghtLine := length(Line) + 2; if (line <> '') then begin StatusBar1.Panels[0].Text := 'Lendo o arquivo de importação'; i := 0; j := 0; DadNumMedicao := ''; DadNumNota := ''; DadNumItem := ''; DadNumPedido := ''; DadPedItem := ''; preco := ''; DadPedValor := '0'; btnAbort.Visible := True; btnImport.Visible := False; while i <= length(line) do begin while (i <= length(line)) and (line[i] <> #$09) do inc(i); while line[i] = #$09 do <- Lê a área da tabulação inc(i); while (i <= length(line)) and (line[i] <> #$09) do inc(i); while line[i] = #$09 do inc(i); while (i <= length(line)) and (line[i] <> #$09) do inc(i); while line[i] = #$09 do inc(i); while (i <= length(line)) and (line[i] <> #$09) do // Numero do movimento/Medição begin if line[i] <> '' then DadNumMedicao := DadNumMedicao + line[i]; inc(i); end; while line[i] = #$09 do inc(i); // if iStatusPlan = 1 then begin while (i <= length(line)) and (line[i] <> #$09) do // Numero da Nota fiscal (somente para importação de pedidos já faturados) begin if line[i] <> '' then DadNumNota := DadNumNota + line[i]; inc(i); end; while line[i] = #$09 do inc(i); end; // while (i <= length(line)) and (line[i] <> #$09) do begin if line[i] <> '' then DadNumItem := DadNumItem + line[i]; inc(i); end; while line[i] = #$09 do inc(i); while (i <= length(line)) and (line[i] in ['0'..'9', ',', '.',' ']) do begin if line[i] in ['0'..'9',','] then DadPedValor := DadPedValor + line[i]; inc(i); end; while line[i] = #$09 do inc(i); while (i <= length(line)) and (line[i] <> #$09) do begin if line[i] <> '' then DadNumPedido := DadNumPedido + line[i]; inc(i); end; while line[i] = #$09 do inc(i); while (i <= length(line)) and (line[i] <> #$09) do begin if line[i] <> '' then DadPedItem := DadPedItem + line[i]; inc(i); end; while line[i] = #$09 do inc(i); inc(i); // para pular coluna de valor do serviço inc(j); Application.ProcessMessages; end; if iStatusPlan = 0 then DadNumMedicao := SomenteDigitos(DadNumMedicao,6) else DadNumNota := SomenteDigitos(DadNumNota,6); Label5.Caption := ''; StatusBar1.Panels[0].Text := 'Processando o arquivo de importação'; []s Walter Alves Chagas Junior Projeto e desenvolvimento Telemont Engenharia de telecomunicações Belo Horizonte - MG - Brazil [EMAIL PROTECTED] Fone: (31) 3389-8215 Fax: (31) 3389-8200 > -----Mensagem original----- > De: Rodrigo Ribeiro [mailto:[EMAIL PROTECTED] > Enviada em: sexta-feira, 24 de junho de 2005 08:34 > Para: Lista Delphi > Assunto: [delphi-br] Arquivo texto separado por taulações > > > Pessoal, > > Preciso ler um arquivo texto q tem colunas separadas por > tabulações....alguém tem alguma rotina que percorre as > colunas pegando os valores q estão entre as tabulações?? > > [ ]'s > > Rodrigo Ribeiro > Programador > WMix Distribuidora Ltda > Fone/Fax: +55(48)381.4740 > > > -------------------------------------------------------------- > ------------ > Esta mensagem foi enviada pela Wmix Distribuidora Ltda, > para uso exclusivo do destinatário, podendo conter > informações confidenciais. Se for recebida por terceiro que > não o destinatário, deve ser apagada imediatamente do seu > computador e a Wmix Distribuidora Ltda notificada > ([EMAIL PROTECTED]). As informações aqui prestadas não podem > ser distribuídas ou reproduzidas sem a expressa autorização > da Wmix Distribuidora Ltda. > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > Para ver as mensagens antigas, acesse: > http://br.groups.yahoo.com/group/delphi-br/messages > > Para falar com o moderador, envie um e-mail para: > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > Links do Yahoo! Grupos > > > > > > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html