Importar arquivo texto \ dúvidas...
Enviado: Janeiro 12th, 2016, 1:16 pm
Olá, conforme exemplo abaixo, estou em dúvida com seguinte:
TabGlobal.DCEP_Bairros.BAI_ID.Conteudo := StrToIntDef(Lista[0], 0);
TabGlobal.DCEP_Bairros.BAI_NOME.Conteudo := Lista[3];
TabGlobal.DCEP_Bairros.BAI_UF.Conteudo := Lista[1];
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo := StrToIntDef(Lista[2], 0);
Minha dúvida:BAI_ID porque StrToIntDef(Lista[0], 0)?
o zero último quer dizer ok?
outro campo
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo := StrToIntDef(Lista[2], 0);
o zero último quer dizer ok?
BAI_LOCALIDADE.Conteudo é um campo númerico?
Obrigado,
Leão
Exemplo de utilização dos métodos "assignfile (Delphi)" e "StringToArray (X-Maker)".
{utilize o "var" para declarar variáveis}
var
f: textfile;
i: Integer;
Linha: String;
Lista: TStringList;
begin
{codificação...}
if Not FileExists(Sistema.Pasta + 'Bairros.txt') then
begin
MessageDlg('Arquivo não encontrado!' + ^M+^M + Sistema.Pasta + 'Bairros.txt', mtWarning, [mbOk], 0);
exit;
end;
if MessageDlg('Importar arquivo de Bairros?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
exit;
if CheckBox1.Checked then // Limpa a Tabela se o componente "CheckBox1" estiver habilitado
TabGlobal.DCEP_Bairros.LimparTabela;
Lista := TStringList.Create;
assignfile(f, Sistema.Pasta + 'Bairros.txt');
reset(f);
try
readln(f, Linha);
while not Eof(f) do
begin
readln(f, Linha);
StringToArray(Linha, ';', Lista);
TabGlobal.DCEP_Bairros.Inclui(Nil);
TabGlobal.DCEP_Bairros.BAI_ID.Conteudo := StrToIntDef(Lista[0], 0); //
TabGlobal.DCEP_Bairros.BAI_NOME.Conteudo := Lista[3];
TabGlobal.DCEP_Bairros.BAI_UF.Conteudo := Lista[1];
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo := StrToIntDef(Lista[2], 0); // esse último número zero, porque?
TabGlobal.DCEP_Bairros.Post;
Application.ProcessMessages;
end;
finally
CloseFile(f);
Lista.Free;
Application.ProcessMessages;
TabGlobal.DCEP_Bairros.Transaction.CommitRetaining;
Application.ProcessMessages;
end;
end;
Conseguir importar, tirei todas as ", deu certo, o detalhe agora é porque não importa a primeira linha
0106800|85364|Rels
começa apartir da segunda.
Leão
TabGlobal.DCEP_Bairros.BAI_ID.Conteudo := StrToIntDef(Lista[0], 0);
TabGlobal.DCEP_Bairros.BAI_NOME.Conteudo := Lista[3];
TabGlobal.DCEP_Bairros.BAI_UF.Conteudo := Lista[1];
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo := StrToIntDef(Lista[2], 0);
Minha dúvida:BAI_ID porque StrToIntDef(Lista[0], 0)?
o zero último quer dizer ok?
outro campo
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo := StrToIntDef(Lista[2], 0);
o zero último quer dizer ok?
BAI_LOCALIDADE.Conteudo é um campo númerico?
Obrigado,
Leão
Exemplo de utilização dos métodos "assignfile (Delphi)" e "StringToArray (X-Maker)".
{utilize o "var" para declarar variáveis}
var
f: textfile;
i: Integer;
Linha: String;
Lista: TStringList;
begin
{codificação...}
if Not FileExists(Sistema.Pasta + 'Bairros.txt') then
begin
MessageDlg('Arquivo não encontrado!' + ^M+^M + Sistema.Pasta + 'Bairros.txt', mtWarning, [mbOk], 0);
exit;
end;
if MessageDlg('Importar arquivo de Bairros?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
exit;
if CheckBox1.Checked then // Limpa a Tabela se o componente "CheckBox1" estiver habilitado
TabGlobal.DCEP_Bairros.LimparTabela;
Lista := TStringList.Create;
assignfile(f, Sistema.Pasta + 'Bairros.txt');
reset(f);
try
readln(f, Linha);
while not Eof(f) do
begin
readln(f, Linha);
StringToArray(Linha, ';', Lista);
TabGlobal.DCEP_Bairros.Inclui(Nil);
TabGlobal.DCEP_Bairros.BAI_ID.Conteudo := StrToIntDef(Lista[0], 0); //
TabGlobal.DCEP_Bairros.BAI_NOME.Conteudo := Lista[3];
TabGlobal.DCEP_Bairros.BAI_UF.Conteudo := Lista[1];
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo := StrToIntDef(Lista[2], 0); // esse último número zero, porque?
TabGlobal.DCEP_Bairros.Post;
Application.ProcessMessages;
end;
finally
CloseFile(f);
Lista.Free;
Application.ProcessMessages;
TabGlobal.DCEP_Bairros.Transaction.CommitRetaining;
Application.ProcessMessages;
end;
end;
Conseguir importar, tirei todas as ", deu certo, o detalhe agora é porque não importa a primeira linha
0106800|85364|Rels
começa apartir da segunda.
Leão