Ler arquivo txt como modo exclusivo!

08/02/2006

0

Galera na empresa onde trabalho possue dois sistemas um que eu desenvolvi e outro da própria empresa feita por outro programador, mais vamos ao que interessa...

o meu sistema é apenas para serviços e pega informações do outro sistema para poder liberar os serviços, até hoje o meu sistema era atualizado todos os dias as 08h e as 12h só que, agora tenho que fazer isso em tempo real e o programador teve uma ideia. Assim que alguém fizer uma alteração no cadastro do cliente, pagamento, exclusão, atualização ou qq outra alteração será criado um arquivo de txt para com as informações, dai ele falou: ´Você tem que criar uma rotina para tentar ler o arquivo a cada 10 segundos por exemplo, ler o arquivo, verificar as informações existentes e e depois apagar depois que terminar a leitura, ai vem o problema, quando tento abrir o arquivo para escrever nele dis que o arquivo já está aberto no modo exclusivo e tenho que fazer um loop para ficar lendo o arquivo até ele ser liberado!
quando for liberado, leio as informações, comparo com as atuais e atualizo se necessário... mais não sei como fazer esse ´looping´....


Paullsoftware

Paullsoftware

Responder

Posts

08/02/2006

Sourcecode

Seu software utiliza qual banco de dados? Se fosse um sgdb como o firebird por exemplo você poderia utilizar replicação de dados através de triggers, que seria uma solução muito mais prática para isso...


Responder

09/02/2006

Paullsoftware

Uso Interbase mais são sistemas e bases diferentes...
inclusive o meu sistema(banco) fica em um servidor e o sistema(banco) da empresa fica em outro..

a solução que encontramos foi essa, ele cria um arquivo sempre que houver mudanças na base dele que seja de importânica para a minha aplicação e eu leio a informação e em seguida dou um rewrite no arquivo só que quando a minha aplicação ler e tenta escrever da um erro disendo que o arquivo foi aberto por outro processo no modo excluisivo.


Responder

09/02/2006

Massuda

A solução mais simples seria fazer um loop tentando abrir o arquivo...
var
  Dados: TextFile;
...
  AssignFile(Dados, ´drive:/path/para/seu/arquivo.txt´);
  repeat
{$I-}
    Reset(Dados);
{$I+}
  until IOResult = 0;
...
O teste com IOResult é para saber se deu erro ao abrir o arquivo. Adapte o código para suas necessidades.


Responder

09/02/2006

Paullsoftware

Grande massuda, vou testar e posto o resultado! valeu...


Responder

09/02/2006

Aroldo Zanela

Colega,

Na paleta Samples tem um componente denominado TShellChangeNotifier que permite monitorar uma determinada pasta. Vocês podem definir uma pasta para o intercâmbio de informações e além do arquivos de dados, criar uma arquivo para sinalizar a conclusão de gravação (p.e: fim.txt).


Responder

09/02/2006

Sourcecode

Só questiono uma coisa a você, PaullSoftware, se um dia quando for gravar o txt a máquina travar (acabar energia, access violation, virus, etc...) e não gravar o arquivo... acho que essa solução poderia gerar inconsistências, não to querendo criticar, de forma alguma, já pensou nessas possibilidades? ;)


Responder

16/02/2006

Paullsoftware

Só questiono uma coisa a você, PaullSoftware, se um dia quando for gravar o txt a máquina travar (acabar energia, access violation, virus, etc...) e não gravar o arquivo... acho que essa solução poderia gerar inconsistências, não to querendo criticar, de forma alguma, já pensou nessas possibilidades? ;)


ok kra valeu pelo toque...
madamos de estratégia, estou usando uma Thread para executar as alterações que funciona assim...

ele toda verificando se o sistema da Empresa sofreu alguma alteração nos dados que me são importantes como:
Inclusão de Novo cliente;
Atualização de Dados do Cliente;
Pagamentos;
Pendencias;
...
assim que ele detecta um dessas alterações ele cria um arquivo txt que chamei de ´Online.txt´, e em seguida, manda as informações para o Meu sistema. Que por sua vez verifica se os dados no arquivo são novos faz uma pesquisa no meu bando para ver se as mudanças são verdadeiras e depois apaga o arquivo ´Online.txt´...


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar