Newsgroup: it.comp.lang.delphi
Titolo: Sorgenti persi

Ecco qua, sono nella merda. Mi rivolgo a voi sapendo che non ne caverò 
niente, ma tant'è.
Io e un mio amico abbiamo fatto un piccolo applicativo (piccolo mica poi 
tanto), nell'arco di circa un anno. Mi salvavo i sorgenti di tanto in 
tanto... è successo che mi è partito l'hard disk e non avevo più gli 
ultimi sorgenti. Fino ad ora è andato tutto bene perché l'applicativo ha 
funzionato, purtroppo oggi è saltato fuori uno stupidissimo bug sul 29 
febbraio (maremma)... rimettere mano ai sorgenti non allineati è un bel 
rischio, perché non sappiamo di preciso cosa abbiamo fatto :(
Giuro che la prossima volta uso un CVS.......
-- 
Jax

 niente, ma tant'è.
Incredibile!!!
Siccome il problema era banale (usavo l'anno 9999 come anno per 
controllare le festività ricorrenti annuali, quindi non esistendo il 
29/02/9999 andava in errore), ho decompilato il programma con DeDe e con 
un editor esadecimale ho cercato l'istruzione corrispondente in 
assembler... ho cambiato il mov ax,$270f (in hex) con il corrispondente 
mov ax,$220B (8888) e funziona tutto... sono troppo felice!
-- 
Jax


Pero'... complimenti! :)
ciao
Giacomo

 (usavo l'anno 9999
Fortuna tua che hai usato questa costante, cos'hai cercato nel decompilato?
-- 
Morde

 Fortuna tua che hai usato questa costante, cos'hai cercato nel decompilato?
DeDe ti genera il codice in assembler ma senza i nomi delle funzioni:
procedure TdmData._PROC_0059F10D(Sender : TObject);
Fortunatamente però ti mostra i richiami alle funzioni con i nomi... 
questa era l'istruzione che mi interessava
0059F16C   66B80F27               mov     ax, $270F
* Reference to: DateUtils.RecodeYear(TDateTime;Word):TDateTime;
e siccome ho usato la funzione RecodeYear solo in quel punto, ho capito 
subito che quel mov era quello che mi interessava.
Non ho fatto altro che cercare 66 B8 0F 27 nell'exe e l'ho sostituito 
con 66 B8 B8 22.
In realtà prima di usare DeDe ci ho provato cercando la costante 9999 ma 
sbagliavo, perché non mi ero accorto che la funzione RecodeYear vuole 
come secondo parametro un word, e invece io cercavo 0F 27 00 00.
Sicuramente senza DeDe non ci sarei riuscito, perché di 0F 27 ce n'erano 
tantissimi...
-- 
Jax

 mov ax,$220B (8888) e funziona tutto... sono troppo felice!
allora, invece di comprare una cassa di birra al doppio malto, fai un
investimento...nn con la tua auto, ovvio!
pigliati un hd esterno e backup, backup, backup.... :-))))
A.

 pigliati un hd esterno e backup, backup, backup.... :-))))
Sob!
-- 
Jax

 sbagliavo,
E' come avrei fatto io... :-)
Ne abbiamo di strada ancora da fare con delphi... ehh... :-P
-- 
Morde

 ha scritto nel messaggio 
news:aecfd804-858a-4f45...@y77g2000hsy.googlegroups.com...

Meglio dei backup consiglio di utilizzare programmi come il Ghost o il True 
Image che creano un "clone" dell'intero disco: qualunque cosa succeda potete 
ripristinare l'intero HD com'era all'ultimo salvataggio. Naturalmente 
l'esecuzione dei Cloni puo' essere pianificata, con 51Gb
impiega circa 15' ma si puo' lo stesso lavorare in contemporanea.
Giorgio 

Alberto Salvati ha scritto:


Io sono per la cassa di birra ...
ACSH
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> Io sono per la cassa di birra ...
giusto! cosi bevi x dimenticare che non hai fatto i backup....! :-))))
A.