Olá galera, nesta Quick Tips irei continuar mostrando o uso do MD5, porém agora pondo em prática a nossa Unit uMD5, agora vamos comparar arquivos como o P2P faz, para ver integridade dos arquivos, um exemplo seria ao enviarmos um arquivo para FTP e como sabermos se o mesmo esta completo ? Utilizando MD5 temos como validar o mesmo.
Vamos fazer uma tela como mostrado abaixo :
2 TLabeledEdit ( EdtArquivo1, EdtArquivo2)
3 TBitBtn(BtnAbrir1, BtnAbrir2,BtnComparar)
1 TOpenDialog

Vamos filtrar as opções do OpenDialog1, através da propriedade Filter coloque o código abaixo, no evento onCreate do formulário :
procedure TFrmCompararArquivos.FormCreate(Sender: TObject);
begin
OpenDialog1.Filter := 'Arquivos Txt|*.Txt|Arquivos Word|*.Doc|Arquivos XLS|*.Xls|Arquivos PDF|*.PDF';
end;
Implementamos o onClick do BtnAbrir1, veja :
procedure TFrmCompararArquivos.BitBtn1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
EdtArquivo1.Text := OpenDialog1.FileName
end;
Implementamos o onClick do BtnAbrir2, veja :
procedure TFrmCompararArquivos.BitBtn2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
EdtArquivo2.Text := OpenDialog1.FileName
end;
Vamos agora dar Uses em uMD5, para podemos utilizar a function MD5Arquivo, com esta podemos comparar se dois arquivos são idênticos ou não
Implementamos o onClick do BtnComparar, veja :
procedure TFrmCompararArquivos.BitBtn3Click(Sender: TObject);
begin
if (FileExists(EdtArquivo1.Text) and FileExists(EdtArquivo2.Text)) then
if MD5Arquivo(EdtArquivo1.Text) = MD5Arquivo(EdtArquivo2.Text) then
ShowMessage('Arquivo1 : ' + EdtArquivo1.Text + #13 +
'Arquivo2 : ' + EdtArquivo2.Text + #13 +
'São Iguais!!!!!')
else
ShowMessage('Arquivo1 : ' + EdtArquivo1.Text + #13 +
'Arquivo2 : ' + EdtArquivo2.Text + #13 +
'São Diferentes!!!!!');
end;
Vamos criar 2 arquivos txt para podermos fazer os testes. Digite em cada arquivo “TEXTO DE EXEMPLO”, e salve os mesmos(arquivo1.txt, arquivo2.txt), compile a aplicação e selecione os dois arquivos, você verá que os arquivos são iguais.
Caso você mude uma única letra, podemos notar que a mensagem irá informar que os arquivos são diferentes. Teste e veja os resultados.
Fico por aqui e na próxima Quick Tips. Espero que gostem destas funções implementem outras e compartilhem, mandem e-mail com sugestões para mais Quick Tips.
Um abraço
Wesley Y
wyamazack@rwsolution.com.br