|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
giotramonte Novato
Registrado: Terça-Feira, 21 de Março de 2017 Mensagens: 4
|
Enviada: Ter Mar 21, 2017 9:46 am Assunto: lendo arquivo txt |
|
|
Ola caros colegas! Estou precisando fazer com que meu sistema leia um arquivo txt. Por exemplo: O Cadastro de clientes será sempre atualizado seja excluindo alunos ou incluindo e preciso que o sistema faça a leitura desse arquivo que estará num pendrive e atualize o banco de dados. Uso Delphi 7 e Firebird 1.5. Se alguém puder me ajudar agradeço |
|
Voltar ao Topo |
|
|
leo_cj Colaborador
Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Mar 21, 2017 10:39 am Assunto: |
|
|
para ler arquivos utilizo o seguinte:
Código: | procedure TForm1.Button1Click(Sender: TObject);
var
Arq: TextFile;
linha: String;
begin
Assign(Arq, Caminho do seu arquivo);
{$I-}
Reset(Arq); // abre o arquivo em modo de readonly
{$I+}
if (IOResult <> 0) then
ShowMessage('Erro na abertura do arquivo!');
while (not eof(arq)) do
begin
readln(arq, linha);
Memo1.Lines.Add(linha);
end;
end; |
nesse exemplo, as linhas do arquivo serão adicionadas no memo1 |
|
Voltar ao Topo |
|
|
giotramonte Novato
Registrado: Terça-Feira, 21 de Março de 2017 Mensagens: 4
|
Enviada: Ter Mar 21, 2017 10:45 am Assunto: |
|
|
Obrigado pela dica Leo, farei o teste. E Teria como fazer a leitura e jogar para a tabela de clientes esses dados por ex: porque na verdade esses dados serão atualizados ou seja terei que fazer a leitura e o sistema verificar os clientes novos e já jogar direto para o banco e os clientes que foram excluidos mudar o status para desativado. |
|
Voltar ao Topo |
|
|
leo_cj Colaborador
Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Ter Mar 21, 2017 11:12 am Assunto: |
|
|
a parte de passar as informações do arquivo para a tabela você vai ter que fazer manualmente, utilizando o método que passei você consegue ler o arquivo, ai de acordo com a estrutura do seu arquivo você precisa determinar a ação a ser tomada (inclusão, edição ou exclusão) e no caso de inclusão ou edição, pegar os valores a serem passados para o banco e realizar o append / edit
ex:
Citação: | tabela cliente
- id integer auto incremento
- nome varchar(20)
tipos operações
- 0: inclusão
- 1: edição
- 2: exclusão
estrutura arquivo
campo----inicio---fim
operação---1------1
id------------2------5
coluna------6------9
valor-------10-----29
arquivo
00000nomeLeonardo
10001nomeBaltazar
00000nomeAdelaide
20002 |
Código: | procedure TForm1.Button1Click(Sender: TObject);
var
Arq: TextFile;
linha: String;
Operacao: Integer;
begin
Assign(Arq, Caminho do Seu Arquivo);
{$I-}
Reset(Arq); // abre o arquivo em modo de readonly
{$I+}
if (IOResult <> 0) then
ShowMessage('Erro na abertura do arquivo!');
while (not eof(arq)) do
begin
readln(arq, linha);
Operacao := StrToInt(Copy(linha, 1, 1));
qry.close;
qry.sql.clear;
if Operacao = 0 then
begin
qry.SQL.Add('INSERT INTO CLIENTE (' + Copy(linha, 6, 4) + ')');
qry.SQL.Add('VALUES (:VALUE)');
qry.Parameters.ParamByName('VALUE').Value := Trim(Copy(linha, 10, 20));
qry.ExecSQL;
end
else if Operacao = 1 then
begin
qry.SQL.Add('UPDATE CLIENTE');
qry.SQL.Add('SET ' + Copy(linha, 6, 4) + ' = :VALUE');
qry.SQL.Add('WHERE ID = :ID');
qry.Parameters.ParamByName('VALUE').Value := Trim(Copy(linha, 10, 20));
qry.Parameters.ParamByName('ID').Value := Copy(linha, 2, 4);
qry.ExecSQL;
end
else
begin
qry.SQL.Add('DELETE CLIENTE');
qry.SQL.Add('WHERE ID = :ID');
qry.Parameters.ParamByName('ID').Value := Copy(linha, 2, 4);
qry.ExecSQL;
end;
end;
end; |
|
|
Voltar ao Topo |
|
|
giotramonte Novato
Registrado: Terça-Feira, 21 de Março de 2017 Mensagens: 4
|
Enviada: Dom Mar 26, 2017 6:23 pm Assunto: RESOLVIDO |
|
|
Muito Obrigado pela dica caros colegas. |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|