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
Marcelo


