Arquivo texto

Delphi

08/04/2005

Pessoal preciso abrir um arquivo texto no delphi e depois inseri-lo em meu banco de dados. Sendo que neste arquivo possui varios campos na mesmo linha como nomecliente, endereco entre outros, eu preciso gravar esses dados em campos diferentes.

Já pesquisei no Delphi, mas achei os exemplos complicados para meu
conhecimento se alguém puder me fornecer um código mas detalhado desde já agradeço.


Cristiane.spl

Cristiane.spl

Curtidas 0

Respostas

Rjun

Rjun

08/04/2005

Você tem o layout com o tamanho dos campos no arquivo texto ?

Use TStringlist para ler o arquivo :

(pseudocodigo)

var
  Arquivo: TStringList;
  i: integer;
begin
  Arquivo := TStringList.Create();
  Arquivo.LoadFromFile(´Nome_do_Arquivo.txt´);

  // loop para ler as linhas do arquivo
  for i := 0 to Arquivo.Count - 1 do  
  begin
      // pegar o campo codigo, considerando q ele esteja nas 5 primeiras posicoes. Por isso é necessario o layout
      Codigo := Copy(Arquivo.Strings[i], 1, 5);  

      // Nesse ponto vc grava as variaveis que voce leu
     // no banco de dados
   end;
   FreeAndNil(Arquivo);
end;

É mais ou menos isso.   
   




GOSTEI 0
Edilcimar

Edilcimar

08/04/2005

Resposta : TextFile; DirResposta, ArqResposta : String;

AssignFile(Resposta, DirResposta + ´\´ + ArqResposta);
Reset(Resposta);
While not eof(Resposta) do
Begin
Readln(Resposta, Temp);
With Table2 do
Begin
Append;
FieldByName(´RECEBER´).AsString := Temp;
Post;
End;
End;
não precisa utilizar nada


GOSTEI 0
Diogoalles

Diogoalles

08/04/2005

Olá
Segue exemplo:

procedure TForm1.Button1Click(Sender: TObject); 
var 
  ARQ : TextFile; 
  Linha : string; 
begin 
  Table1.Open; 
  AssignFile(ARQ,Edit1.Text);// aqui estou indicando através de um Edit que tenho no form onde está o arquivo texto 
  Reset(ARQ); 

  while not Eof(ARQ) do 
  begin 
    ReadLn(ARQ,Linha); 
    if Table1.FindKey([StrToInt(copy(Linha,1,5))]) then 
      Table1.Edit 
    else 
      Table1.Insert; 
    Table1Cd_item.value    := strtofloat(copy(Linha,1,14)); 
    Table1Nm_item.Value    := UpperCase(copy(Linha,15,60)); 
    TblItens.Post; 
    TblItens.Refresh; 
  end; 
  CloseFile(ARQ); 
end;


abraço
Diogo


GOSTEI 0
POSTAR