Página 2 de 2

Enviado: 26 Jan 2005 15:23
por Clipper
Prezado Reginaldo

Para calcular o checksum de um arquivo use a função FILECHECK() da Clipper Tools, quanto ao problema de outro arquivo gerar um txt com os mesmos dados isso é muito simples de bloquear, exemplo :

Digamos que o nome do TXT seja INFO.TXT
No inicio do sistema você verifica se o arquivo existe, se existir tenta excluir com FERASE("INFO.TXT"), se a função retornar que não foi possivel excluir é porque está com algum atributo, você pode tentar tirar o atributo e tentar excluir novamente ou simplesmente informar que existe algum problema e que o cliente deve entrar em contato.
Ou seja, o sistema só irá rodar depois que o sistema verificar que o INFO.TXT não existe, permitindo assim o sistema gerar o mesmo.

Exemplo :

Código: Selecionar todos

EXCLUI=1
CONTA=0
IF FILE("INFO.TXT")
   DO WHILE EXCLUI<>0
      EXCLUI=:FERASE("INFO.TXT") // Tenta excluir o arquivo
      IF EXCLUI<>0
         C_FILEATTR("INFO.TXT","-R/-S/-H") // Tenta tirar os attributos
      ENDIF
      CONTA++
      IF CONTA>=10
         RETURN // Depois de 10 tentativas de exclusao o programa aborta
      ENDIF
   ENDDO
ENDIF
Até logo.

Marcelo

Enviado: 26 Jan 2005 16:59
por Reginaldo
Olá Marcelo,

Valeu pela dica!!!
No caso do arquivo TXT eu não me preocupo, pois será gerado sempre com um nome diferente... Portanto o sistema sempre estará excluindo, criando, lendo e excluindo o arquivo...

Cordialmente,

Enviado: 23 Fev 2005 20:06
por Mário Isa
uma coisa q não pude deixar de lembrar é:
1-para o caso de alguém produzir um hbdrvinf.exe q produza um .txt igual para todos faça o seguinte:
leia um "pedaço" do hbdrvinfo.exe at´ravés do fread().
toda vez antes de "rodar o hbdrvinf.exe veja se aquele pedaço é aquele q vc já sabe.
Se não for é pq alguém está tentando piratear o seu software.


Mário Isa