Newsgroup: it.comp.lang.visual-basic
Titolo: Comparatori di codice

Ciao a tutti.
Tempo fa mi è capitato di scrivere un programma per l'università per 
conto di 2 ragazzi. In seguito mi hanno riferito che il professore ha 
riscontrato che i 2 programmi erano simili e che ha utilizzato un 
programma che compara il programma in sè, non le singole righe di codice.
ne avete mai sentito parlare e ne conoscete uno?
grazie
Daniele

 ha scritto nel messaggio 
news:dgoh83$pm0

Io di questo tipo conosco solo il video con controllo bio-ottico.
Ciao 

 Ciao 
no, non sto scherzando: li ha beccati simili ed uguali a quello che 
avevo fatto tempo prima per un altro tizio e che evidentemente si è 
presentato per lo stesso esame.
ed insieme a loro c'era molta gente per quell'essame: dubito un 
controllo fatto a mano...

 controllo fatto a mano...
Secondo me č un controllo a libello binario...
č il piů facile che si possa fare e puň dimostrare che molte parti
di codice sono uguali!

 di codice sono uguali!
puň anche darsi.. non lo metto in dubbio.
software che lo fanno?

 software che lo fanno?
Non lo so!
Cioè ho dato questa risposta sulla base delle info da te fornite!
Ho pensato che questo è uno, se forse non l'unico, modo per sapere
se parti di codice (binario) sono uguali!
Di sicuro questa è la base, ma se la relazioni al formato eseguibile,
mi sa che esce fuori una cannonata precisa! Saper cosa stai confrontando
per la precisione...variabili, codice, ecc...ma è solo una mia ipotesi!

secondo me è una sparata fatta per far capire agli studenti che non
devono fare i furbi.
se ne è accorto perchè si ricordava di qualcosa, e ha detto:
"non provate a copiarvi il codice, chè vi becco! io ho il comparatore
di codice superturbo"
... ed ecco che magicamente gli studenti on si passano più il codice.

 
puň essere, ma che a 3 studenti, di cui 1 a cui ho fatto il codice tempo 
prima ma che evidentemente ha lasciato traccia della mia "mano", siano 
stati beccati... e proprio loro...

boh... io 'so gnurante.... pero'...
non e' semplicemente possibile che si sia ricordato il tuo stile di
programmazione?
che ne so... fai lo scambio di valore di due variabili solo con xor...
strutturi sempre
nella stessa maniera la risoluzione dei singoli problemi.. e via
dicendo.


impossibile: non li avrà nemmeno guardati quei sorgenti.
e poi avevano lo stesso concetto, ma li ho riscritti da zero.. ( o quasi)

 strutturi sempre
Questa me la spieghi?
-- 
Emanuele Torrenti
http://torrenti.altervista.org

 Questa me la spieghi?
Credo intenda questo
http://groups.google.it/group/it.comp.lang.visual-basic/browse_frm/thread/9a5047ca0793164c/d7e99dd0a635ca50?q=roal+zanazzi+swap+xor&rnum=1&hl=it#d7e99dd0a635ca50
Ciao 


Mai provato... Eppur mi sfugge come funziona, forse dovrei prendere un 
pezzo di carta e segnare uni e zeri...
Suppongo sia anche molto veloce,specie se portato "inline" e su 
variabili "register" (in c++ si puo' fare, se non ricordo male)


 variabili "register" (in c++ si puo' fare, se non ricordo male)
Peccato che non funzioni per le stringhe, infatti il vero vantaggio della
vecchia funzione swap si vedeva lì... parlando di variabili numeriche, al di
là della genialità della trovata, una variabile temporanea long come consumo
di ram fa ridere.
L'ideale sarebbe poter scambiare i puntatori...

 L'ideale sarebbe poter scambiare i puntatori...
Che è quello che faceva la vecchio SWAP basic.
Ciao 

 Che è quello che faceva la vecchio SWAP basic.
Infatti, cmq, in teoria, si dovrebbe poter realizzare con varptr(stringa) +
un paio di copymemory...

 un paio di copymemory...
E infatti, dopo un paio di prove, ecco qua un porting VB per la funzione di
swap tra due stringhe :-)
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As
Any, pSrc As Any, ByVal ByteLen As Long)
Private Sub SwapStr(ByRef Stringa1 As String, ByRef Stringa2 As String)
    CopyMemory PtrTMP&, ByVal VarPtr(Stringa2), 4
    CopyMemory ByVal VarPtr(Stringa2), ByVal VarPtr(Stringa1), 4
    CopyMemory ByVal VarPtr(Stringa1), PtrTMP&, 4
End Sub

 swap tra due stringhe :-)
Secondo me si puň fare di meglio, nel senso di una funzione piů generica sui 
tipi, accettando 2 variant come parametri.
Ciao

 tipi, accettando 2 variant come parametri.
Mah, avevo provato in verità, però il sistema non sembra funzionare con le
variant (chissà perché poi).
Cmq, in fondo, una funzione di swap tra variabili numeriche non so quanto
possa essere realmente utile.

 variant (chissà perché poi).
Perchè dovresti swappare il puntatore ai dati e non alla variabile variant.
Dovresti controllare la struttura dei Varian:
http://groups.google.it/group/it.comp.lang.visual-basic/browse_frm/thread/7ff9e26234080857/bbe4ba2835e19e04?q=zanna+variant+dati&rnum=1&hl=it#bbe4ba2835e19e04
Ciao