> Le 8 nov. 2017 à 07:47, Wayne Stewart via 4D_Tech <[email protected]> a 
> écrit :
> 
> Hi,
> 
> Any more thoughts on this?  This is what I do currently:
> 
> $oldBLOB_x:=Old($CurrentField_ptr->)
> 
> Case of
>  : (BLOB size($oldBLOB_x)=0) & (BLOB size($CurrentField_ptr->)=0)
>  : (Generate digest($oldBLOB_x;MD5 digest)=Generate
> digest($CurrentField_ptr->;MD5 digest))
> Else
>  //  It's different
> End case
> 
> Is there a more efficient mechanism?

Hi Wayne, 
I tried: convert blob to picture+Equal picture, md5, sha1, sha2… 

Forget Equal pictures, stupid idea  :-/
But I was surprised to find:
• sha1 always faster than md5
• sha2 result very close to md5
(at least with different test documents I used and 4dv16R5 64b)

+++
C_PICTURE($mask_i)
$path1_t:=Convert path POSIX to system("/Users/arnaud/Pictures/161002_1.jpeg")
$path2_t:= path1_t

C_BLOB($1_x;$2_x)
DOCUMENT TO BLOB($path1_t;$1_x)
DOCUMENT TO BLOB($path2_t;$2_x)

BLOB TO PICTURE($1_x;$1_i)
BLOB TO PICTURE($2_x;$2_i)

ARRAY TEXT($test_at;0)
ARRAY LONGINT($ms_al;0)
$duration_l:=60*2
$i_l:=0

$i_l:=$i_l+1
$j_l:=0
$end_l:=Tickcount+$duration_l
Repeat 
        $j_l:=$j_l+1
        $_b:=Equal pictures($1_i;$2_i;$mask_i)
        ASSERT($_b)
Until (Tickcount>$end_l)
APPEND TO ARRAY($test_at;"Equal pictures")
APPEND TO ARRAY($ms_al;$j_l)

$i_l:=$i_l+1
$j_l:=0
$end_l:=Tickcount+$duration_l
Repeat 
        $j_l:=$j_l+1
        $1_t:=Generate digest($1_x;MD5 digest)
        $2_t:=Generate digest($2_x;MD5 digest)
        ASSERT($1_t=$2_t)
Until (Tickcount>$end_l)
APPEND TO ARRAY($test_at;"MD5 digest")
APPEND TO ARRAY($ms_al;$j_l)

$i_l:=$i_l+1
$j_l:=0
$end_l:=Tickcount+$duration_l
Repeat 
        $j_l:=$j_l+1
        $1_t:=Generate digest($1_x;SHA1 digest)
        $2_t:=Generate digest($2_x;SHA1 digest)
        ASSERT($1_t=$2_t)
Until (Tickcount>$end_l)
APPEND TO ARRAY($test_at;"SHA1 digest")
APPEND TO ARRAY($ms_al;$j_l)

$i_l:=$i_l+1
$j_l:=0
$end_l:=Tickcount+$duration_l
Repeat 
        $j_l:=$j_l+1
        $1_t:=Generate digest($1_x;SHA256 digest)
        $2_t:=Generate digest($2_x;SHA256 digest)
        ASSERT($1_t=$2_t)
Until (Tickcount>$end_l)
APPEND TO ARRAY($test_at;"SHA256 digest")
APPEND TO ARRAY($ms_al;$j_l)

$msg_t:=""
For ($i_l;1;Size of array($ms_al))
        $msg_t:=$msg_t+"\r"+$test_at{$i_l}+"="+String($ms_al{$i_l})
End for 
ALERT($msg_t)
+++

-- 
Arnaud de Montard 



**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to