Boa tarde... 

Tenho um layout de arquivo que consigo importar para uma tabela do 
banco de dados: 
Estou contando os espaços e o código esta fazendo a gravação correta. 
Mais em alguns casos o layout de importação muda, ou seja, o nome do 
cliente aumenta o tamanho dos espaços ou até mesmo a falta de um 
telefone. 

Gostaria de altera o código de forma que o mesmo pegasse os `;' como 
delimitador 

Agradeço a ajuda!! 

Layout de importação: 
3351781;MARIA DA PENHA 
CAUS;69601640797;055;021;46671479;015;46687415;013;48879253; 
3351781;MARIA DA PENHA 
CAUS;69601640797;055;021;46671479;015;46687415;013;48879253; 
3351781;MARIA DA PENHA 
CAUS;69601640797;055;021;46671479;015;46687415;013;48879253; 
3351781;MARIA DA PENHA 
CAUS;69601640797;055;021;46671479;015;46687415;013;48879253; 


Código com os espaços corretos: 

procedure TfrmImportacao.btnImportaClick(Sender: TObject); 
var 
fArq: TextFile; //Variável do Tipo Arquivo de Texto 
Caminho: string; //Variável que armazenará o caminho 
Linha: string; //Variável que vai armazenar cada linha 
mTexto: TStringList; //Utilizada para contar as linhas a importar 
i: integer; //variável utilizada no contador de linhas Importadas 
begin 
Caminho := editArquivo.Text; //Variavel vai receber os dados do edit 
AssignFile(fArq, Caminho); 
ReSet(fArq); 
mTexto := TStringList.Create; 
try 
mTexto.LoadFromFile(Caminho); 
ProgressBar1.Max := mTexto.Count - 1; 
i := 0; 
finally 
mTexto.Free; 
end; 
while not Eof(fArq) do //Enquanto não chegar ao fim do arquivo 
begin 
Application.ProcessMessages; 
Readln(farq, linha); //Lê a linha e posiciona o cursor na próxima 
frmImportacao.Caption := 'Lendo Linha: ' + IntToStr(i) + ' de: ' + 
IntToStr(ProgressBar1.Max); 
//Buscando pelo Parâmetro codigo, para verificar se já existe na 
tabela 
//DM.cdsImportacao.Params.ParamByName('cod_integracao').asString := 
Trim(Copy(Linha, 1, 7)); 
DM.cdsImportacao.Open; //Abre o CDS 
// 
if DM.cdsImportacao.IsEmpty then //Se Não existir o registro 
DM.cdsImportacao.Append //Insira os dados da linha atual 
else //Senão, se o registro já existir 
DM.cdsImportacao.Append; // mesmo ezistindo ele inseri 
//Aqui os campos recebem as linhas lidas 
DM.cdsImportacaocod_integracao.AsString :=Trim(Copy(Linha, 1, 7 )); 
DM.cdsImportacaonome.AsString :=Trim(Copy(Linha, 9, 19 )); 
DM.cdsImportacaocontato.AsString :=Trim(Copy(Linha, 31, 9 )); 
DM.cdsImportacaoddi.AsString :=Trim(Copy(Linha, 41, 3 )); 
DM.cdsImportacaoddd.AsString :=Trim(Copy(Linha, 45, 3 )); 
DM.cdsImportacaofone.AsString :=Trim(Copy(Linha, 49, 8 )); 
DM.cdsImportacaoddd_2.AsString :=Trim(Copy(Linha, 58, 3 )); 
DM.cdsImportacaofone_2.AsString :=Trim(Copy(Linha, 62, 8 )); 
DM.cdsImportacaoddd_3.AsString :=Trim(Copy(Linha, 71, 3 )); 
DM.cdsImportacaofone_3.AsString :=Trim(Copy(Linha, 75, 8 )); 
DM.cdsImportacao.Post; //Salve o registro em memória 
DM.cdsImportacao.ApplyUpdates(0); //Aplica as atualizações em memória 
no banco 
DM.cdsImportacao.Close; //Fecha o CDS } 
Inc(i); 
ProgressBar1.Position := ProgressBar1.Position + 1; 
end; 
MessageBeep(65); 
ShowMessage('Processo Concluído Com êxito!!!'); 
end;

Responder a