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;