TABELAS IBEXPERT E ARQUIVOS .TXT
23/01/2013
0
TRONCO (LINHA TELEFÔNICA EX. 01, 02, 03, 04....)
RAMAL (EX. 200, 201, 202...)
NÚMERO (TELEFONE)
HORA
TEMPO (DURAÇÃO)
DATA
VALOR
CÓDIGO LOCAL (DDD UTILIZADO NA LIGAÇÃO)
Ou seja todos vão receber caracteres numéricos. Após criar a tabela, preciso pegar estes dados que estão dentro de arquivos .txt e preciso jogá-los nessa tabela, preciso muito da ajuda de vocês.
Agradeço a aguardo a opinião e ajuda de todos!
Samuel Silva
Posts
23/01/2013
Luciano Moraes
var sArquivo: TextFile; Entrada, sArq2: string; iLinha: integer; begin tblCep.Open; tblCepLoc.Open; bCancelaImport := False; AssignFile(sArquivo, FileNameEdit1.FileName); sArq2 := After('Cep_Loc.txt',FileNameEdit1.FileName); iLinha := 0; if FileNameEdit1.FileName = 'C:\Download\Ceps\Cep_loc.txt' then begin // Arquivo de Localidades RzProgressBar1.TotalParts := 0; RzProgressBar1.TotalParts := NumLinhasArq(FileNameEdit1.FileName); Reset(sArquivo); Readln(sArquivo,Entrada); while not Eoln(sArquivo) do begin Inc(iLinha); Readln(sArquivo,Entrada); // 0 = Base Total e 2 = Inclusao if (copy(Entrada,90,1) = '0') or (copy(Entrada,90,1) = '2') then begin tblCepLoc.Append; tblCepLoc.FieldByName('cep_ChvLocal').AsString := copy(Entrada,1,6); tblCepLoc.FieldByName('cep_Cidade').AsString := copy(Entrada,7,60); tblCepLoc.FieldByName('cep_UF').AsString := copy(Entrada,75,2); try blCepLoc.Post; except blCepLoc.Cancel; end; end else if (copy(Entrada,90,1) = '1') then begin // Exclusao if tblCepLoc.Locate('cep_ChvLocal', copy(Entrada,1,6), [loPartialKey]) then tblCepLoc.Delete; end else if (copy(Entrada,90,1) = '3') then begin // Alteracao if tblCepLoc.Locate('cep_ChvLocal', copy(Entrada,1,6), [loPartialKey]) then begin tblCepLoc.Edit; tblCepLoc.FieldByName('cep_Cidade').AsString := copy(Entrada,7,60); tblCepLoc.FieldByName('cep_UF').AsString := copy(Entrada,75,2); end; try tblCepLoc.Post; except tblCepLoc.Cancel; end; end; RzProgressBar1.PartsComplete := iLinha; Application.ProcessMessages; if bCancelaImport then Break; end; CloseFile(sArquivo); end;
23/01/2013
Luciano Moraes
var
sArquivo: TextFile;
Entrada, sArq2: string;
iLinha: integer;
begin
tblCep.Open;
tblCepLoc.Open;
bCancelaImport := False;
AssignFile(sArquivo, FileNameEdit1.FileName);
sArq2 := After('Cep_Loc.txt',FileNameEdit1.FileName);
iLinha := 0;
if FileNameEdit1.FileName = 'C:\Download\Ceps\Cep_loc.txt' then begin
// Arquivo de Localidades
RzProgressBar1.TotalParts := 0;
RzProgressBar1.TotalParts := NumLinhasArq(FileNameEdit1.FileName);
Reset(sArquivo);
Readln(sArquivo,Entrada);
while not Eoln(sArquivo) do begin
Inc(iLinha);
Readln(sArquivo,Entrada);
// 0 = Base Total e 2 = Inclusao
if (copy(Entrada,90,1) = '0') or (copy(Entrada,90,1) = '2') then
begin
tblCepLoc.Append;
tblCepLoc.FieldByName('cep_ChvLocal').AsString :=
copy(Entrada,1,6);
tblCepLoc.FieldByName('cep_Cidade').AsString :=
copy(Entrada,7,60);
tblCepLoc.FieldByName('cep_UF').AsString := copy(Entrada,75,2);
try
blCepLoc.Post;
except
blCepLoc.Cancel;
end;
end
else if (copy(Entrada,90,1) = '1') then begin // Exclusao
if tblCepLoc.Locate('cep_ChvLocal', copy(Entrada,1,6),
[loPartialKey]) then
tblCepLoc.Delete;
end
else if (copy(Entrada,90,1) = '3') then begin // Alteracao
if tblCepLoc.Locate('cep_ChvLocal', copy(Entrada,1,6),
[loPartialKey])
then begin
tblCepLoc.Edit;
tblCepLoc.FieldByName('cep_Cidade').AsString :=
copy(Entrada,7,60);
tblCepLoc.FieldByName('cep_UF').AsString :=
copy(Entrada,75,2);
end;
try
tblCepLoc.Post;
except
tblCepLoc.Cancel;
end;
end;
RzProgressBar1.PartsComplete := iLinha;
Application.ProcessMessages;
if bCancelaImport then
Break;
end;
CloseFile(sArquivo);
end;
23/01/2013
Luciano Moraes
24/01/2013
Samuel Silva
29/01/2013
Samuel Silva
29/01/2013
Douglas
código abaixo faz exatamente o que você precisa.
Porém se vai ter que adaptar o código para o seu padrão.
procedure TForm1.Button1Click(Sender: TObject); var //Declarando tamanho das variaveis que do arquivo. Tronco : string[2]; //TRONCO Ramal : string[3]; //RAMAL Telefone : string[8]; //NÚMERO hora : string[6]; // HORA tempo : string[6]; //tempo data : string[8]; //data CodLocal : string[2]; //codigo local //Variaveis Auxiliares Arq : TextFile; begin if OpenDialog1.Execute then exit; AssignFile(Arq, OpenDialog1.FileName); Reset(Arq); while not Eof(Arq) do begin Readln(Arq, Tronco, Ramal, Telefone, Hora, Tempo, Data, CodLocal); Qry_Aux.Close; Qry_Aux.SQL.Clear; Qry_Aux.SQL.Add('INSERT INTO TELEFONICA'); Qry_Aux.SQL.Add('(TRONCO, RAMAL, TELEFONE, HORA, TEMPO, DATA, CODLOCAL)'); Qry_Aux.SQL.Add('VALUES'); Qry_Aux.SQL.Add('(:TRONCO, :RAMAL, :TELEFONE, :HORA, :TEMPO, :DATA, :CODLOCAL)'); Qry_Aux.ParamByName('TRONCO' ).AsInteger := StrToInt(TRONCO); Qry_Aux.ParamByName('RAMAL' ).AsInteger := StrToInt(RAMAL); Qry_Aux.ParamByName('TELEFONE').AsString := TELEFONE; Qry_Aux.ParamByName('HORA' ).AsTime := StrToTime(HORA); Qry_Aux.ParamByName('TEMPO' ).AsTime := StrToTime(TEMPO); Qry_Aux.ParamByName('DATA' ).AsDate := STRTODATE(DATA); Qry_Aux.ParamByName('CODLOCAL').AsInteger := StrToInt(CODLOCAL); Qry_Aux.ExecSQL; end; CloseFile(Arq); FreeAndNil(Qry_Aux); end; end.
Qualquer dúvida só postar. Vamos resolver logo este problema !
29/01/2013
Douglas
código abaixo faz exatamente o que você precisa.
Porém se vai ter que adaptar o código para o seu padrão.
procedure TForm1.Button1Click(Sender: TObject); var //Declarando tamanho das variaveis que do arquivo. Tronco : string[2]; //TRONCO Ramal : string[3]; //RAMAL Telefone : string[8]; //NÚMERO hora : string[6]; // HORA tempo : string[6]; //tempo data : string[8]; //data CodLocal : string[2]; //codigo local //Variaveis Auxiliares Arq : TextFile; begin if not OpenDialog1.Execute then exit; AssignFile(Arq, OpenDialog1.FileName); Reset(Arq); while not Eof(Arq) do begin Readln(Arq, Tronco, Ramal, Telefone, Hora, Tempo, Data, CodLocal); Qry_Aux.Close; Qry_Aux.SQL.Clear; Qry_Aux.SQL.Add('INSERT INTO TELEFONICA'); Qry_Aux.SQL.Add('(TRONCO, RAMAL, TELEFONE, HORA, TEMPO, DATA, CODLOCAL)'); Qry_Aux.SQL.Add('VALUES'); Qry_Aux.SQL.Add('(:TRONCO, :RAMAL, :TELEFONE, :HORA, :TEMPO, :DATA, :CODLOCAL)'); Qry_Aux.ParamByName('TRONCO' ).AsInteger := StrToInt(TRONCO); Qry_Aux.ParamByName('RAMAL' ).AsInteger := StrToInt(RAMAL); Qry_Aux.ParamByName('TELEFONE').AsString := TELEFONE; Qry_Aux.ParamByName('HORA' ).AsTime := StrToTime(HORA); Qry_Aux.ParamByName('TEMPO' ).AsTime := StrToTime(TEMPO); Qry_Aux.ParamByName('DATA' ).AsDate := STRTODATE(DATA); Qry_Aux.ParamByName('CODLOCAL').AsInteger := StrToInt(CODLOCAL); Qry_Aux.ExecSQL; end; CloseFile(Arq); FreeAndNil(Qry_Aux); end; end.
Qualquer dúvida só postar. Vamos resolver logo este problema !
Só editando ali no OpenDialog1.Execute esqueci do (NOT)
Clique aqui para fazer login e interagir na Comunidade :)