OUTPUT BUFFER:
#!/usr/local/bin/wish source lib/LRIPhoto.kit package require LRIPhoto namespace import ::LRI::* set s1 "ACEDFT......ISH..AE...SPATL....QMAR.....TKD.A.F.LSN.............................SDFSDFMKLMGKLMMAPAINF...............................FFM...G....LPR...SDFSFDKFASLDKMLKFMFPFAIQLSDFQA...THMKSDFLQMTIQYTMC" set s2 "ACEDFT...........AE...SPATL....QMAR.....TKD.M.F.LSN.................SDLKFMSDFG..SDFSDFMKLITHDKSAMPWNA...............................MFM...G....LPR...SDFSMDKFMQSDFQKLMPAIQREALSDFQA...THQKSDFLQMTIQYTQC" set seq1 [string repeat $s1 15] set seq2 [string repeat $s2 15] puts "seq1 [string length $seq1]" puts "seq2 [string length $seq2]" for {set i 0} {$i < 200} {incr i} { lappend Lseq $seq1 } proc nr1 {a b} { set p 0 foreach ca $a cb $b { if {$ca eq "."} {continue} if {$cb eq "."} {continue} if {$ca eq $cb} {incr p} } puts "nr1: $p" return } proc nr2 {a b} { set p 0 foreach ca $a cb $b { if {$ca eq "."} {continue} if {$cb eq $ca} {incr p} } puts "nr2: $p" return } proc nr3 {a b} { set p 0 foreach ca $a cb $b { if {$ca eq "." || $cb eq "."} {continue} if {$ca eq $cb} {incr p} } puts "nr3: $p" return } proc nr4 {a b} { set p 0 foreach ca $a cb $b { if {$ca ne $cb} {continue} if {$ca ne "."} {incr p} } puts "nr4: $p" return } proc nr5 {a b} { set p 0 foreach ca $a cb $b { if {$ca ne "." && $ca eq $cb} {incr p} } puts "nr5: $p" return } proc nr6 {a b} { set p 0 foreach ca $a cb $b { if {$ca eq "." || $cb eq "."} {continue} incr p [expr {$ca eq $cb}] } puts "nr6: $p" return } proc nr7 {a b} { set p 0 foreach ca $a cb $b { incr p [expr {$ca ne "." && $cb eq $ca}] } puts "nr7: $p" return } proc ScaleImg q { global img global cnv global sctot if {! [info exists sctot]} {set sctot 1.} if {$q == "moins"} { imgtransform $img -scalex 90 set sctot [expr $sctot*0.9] } else { imgtransform $img -scalex 110 set sctot [expr $sctot*0.9] } set h [$img cget -height] set w [$img cget -width] $cnv configure -height $h -width $w return } proc AddFeat {} { global nl nc global sctot global cnv global img if {! [info exists sctot]} {set sctot 1.0} set x1 10 set x2 75 for {set i 0} {$i < 10} {incr i} { set d [expr $x1 + $i*100] set f [expr $x2 + $i*100] if {$f > $nc} {break} lappend Lf $d $f } set itmp [image create photo -height $nl -width $nc] set ift [image create photo -height $nl -width $nc] $itmp blank $ift blank $itmp put "#00ff00" -to 0 0 $nc $nl foreach {d f} $Lf { $ift put "#00ff00" -to $d 0 $f [expr $nl-1] } imgtransform $ift -scalex [expr round($sctot*100)] set IcFt [$cnv create image 0 0 -image $ift -anchor nw] $cnv lower $IcFt return } set ls1 [split $seq1 ""] set ls2 [split $seq2 ""] puts "[time {nr1 $ls1 $ls2} 3]" puts "[time {nr2 $ls1 $ls2} 3]" puts "[time {nr3 $ls1 $ls2} 3]" puts "[time {nr4 $ls1 $ls2} 3]" puts "[time {nr5 $ls1 $ls2} 3]" puts "[time {nr6 $ls1 $ls2} 3]" puts "[time {nr7 $ls1 $ls2} 3]" exit global img global cnv global nl global nc set cnv ".f.c" set nl [llength $Lseq] set nc [string length [lindex $Lseq 0]] set img [image create photo -width $nc -height $nl] $img blank frame .f pack .f canvas .f.c -width $nc -height $nl pack .f.c -side top button .f.bm -text " - " -bg cyan -command [list ScaleImg "moins"] button .f.bp -text " + " -bg cyan -command [list ScaleImg "plus"] button .f.af -text "add feat" -bg green -command [list AddFeat] pack .f.bm .f.bp .f.af -side left -expand 1 set img [image create photo -width $nc -height $nl] $img blank puts "[time {nr5 $Lseq $img} 1]" $cnv create image 0 0 -image $img -anchor nw