ai meu caro, vc tem que saber o tamanho de cada campo e fazer 
com que o Copy(Str,Index,Count) copie exatament o que vc quer.
tipo:
TXT(
00000001 JOAO PAULINO DE OLIVEIRA     RUA DE GLORIA ANDAR DE CIMA
00000002 MARIA MADALENA DE OLIVEIRA   RUA DA GETULIO VARGAS      
)
no txt temos os seguintes campos
FIELD            SIZE
codigo           8
nome             28
rua              27
então quando fazer o copy() temos que atentar para indicar a possição
de inicio correta e a quantidade de caracter correta.
assim:
procedure....
Var
 sLinha, sCodigo, sNome, sEndereco: string
begin
//..... while ou for pra passar o valor da linha lida no txt para sLinha;
 sCodigo   := Trim(Copy(sLinha,1,8)//copiar da posição 1, 8 caractes
 sNome     := Trim(Copy(sLinha,10,28)//copiar da posição 10, 28 caractes
 sEndereco := Trim(Copy(sLinha,39,27)// copiar da posição 39, 27 caractes
//... o resto do seu código;
end;
 
bom então acho que você esteja pecando nessa parte da divisão de inicio e 
quantidade de caracters.
reveja seus código com calma.
ah! lembrando que todas as linhas do txt devem ter exatamente a mensa 
quantidade de caracteres para o mesmo campo, mesmo, quando o texto real
seja menor, a diferença que falta deve estar com espaços vazio.
epero ter ajudado
Jean Barreiros
Programador/Web-Designer
Delphi, C++, PHP, JavaScript
FireBird/InterBase, MySql, SQLServer, PostGree, Oracle
msn: [EMAIL PROTECTED]
e-mail: [EMAIL PROTECTED] 


      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

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

Responder a