UUdecode
Publié : dim. 16/juil./2006 21:29
quelqu'un a deja fait une procedure de uudecode/encode par hasard ?
j'ai bien recuperer un listing sur purearea, mais il deconne , il laisse des "@"
dans le fichier decodé , par rapport a l'original decoder avec un soft
et rends de ce fait impossible la lecture de JPG ...
donc si quelqu'un a du temps a perdre avec ça .. Merci d'avance
voici les routines (procedures) qui deconne si ça vous dit de les reparer
je joint un fichier uuencoder, une jolie image pour celui qui arrive a le decoder
ce programme utilise la procedure de decodage pour lire le fichier "uucode.txt"
et sauvegarde sous forme d'image "uucode.jpg"
du moins en principe
car si l'on compare le fichier decodé grace a cette procedure
et le fichier decoder grace a un vrais decodeur uuencode
ben il y a ces "@" un peut pertout qui font que ça marche pas
le programme complet a lancer
Le fameux fichier "UUcode.txt" qui contient une tres belle image 
http://michel.dobro.free.fr/bidouilles/uucode.txt

j'ai bien recuperer un listing sur purearea, mais il deconne , il laisse des "@"
dans le fichier decodé , par rapport a l'original decoder avec un soft
et rends de ce fait impossible la lecture de JPG ...
donc si quelqu'un a du temps a perdre avec ça .. Merci d'avance
voici les routines (procedures) qui deconne si ça vous dit de les reparer
je joint un fichier uuencoder, une jolie image pour celui qui arrive a le decoder
ce programme utilise la procedure de decodage pour lire le fichier "uucode.txt"
et sauvegarde sous forme d'image "uucode.jpg"
du moins en principe
car si l'on compare le fichier decodé grace a cette procedure
et le fichier decoder grace a un vrais decodeur uuencode
ben il y a ces "@" un peut pertout qui font que ça marche pas
le programme complet a lancer
Code : Tout sélectionner
; English forum: http://purebasic.myforums.net/viewtopic.php?t=8989&highlight=
; Author: Wayne Diamond
; Date: 03. January 2004
Procedure.s UUDecode(sInBuf.s)
sOutBuf.s = ""
For lLoop.l = 1 To Len(sInBuf) Step 4
sOutBuf = sOutBuf + Chr((Asc(Mid(sInBuf, lLoop, 1)) - 32) * 4 + (Asc(Mid(sInBuf, lLoop + 1, 1)) - 32) / 16)
sOutBuf = sOutBuf + Chr((Asc(Mid(sInBuf, lLoop + 1, 1)) % 16) * 16 + (Asc(Mid(sInBuf, lLoop + 2, 1)) - 32) / 4)
sOutBuf = sOutBuf + Chr((Asc(Mid(sInBuf, lLoop + 2, 1)) % 4) * 64 + Asc(Mid(sInBuf, lLoop + 3, 1)) - 32)
Next lLoop
ProcedureReturn sOutBuf
EndProcedure
Procedure.s UUEncode(sInBuf.s)
sOutBuf.s = ""
For lLoop.l = 1 To Len(sInBuf) Step 3
sOutBuf = sOutBuf + Chr(Asc(Mid(sInBuf, lLoop, 1)) / 4 + 32)
sOutBuf = sOutBuf + Chr((Asc(Mid(sInBuf, lLoop, 1)) % 4) * 16 + Asc(Mid(sInBuf, lLoop + 1, 1)) / 16 + 32)
sOutBuf = sOutBuf + Chr((Asc(Mid(sInBuf, lLoop + 1, 1)) % 16) * 4 + Asc(Mid(sInBuf, lLoop + 2, 1)) / 64 + 32)
sOutBuf = sOutBuf + Chr(Asc(Mid(sInBuf, lLoop + 2, 1)) % 64 + 32)
Next lLoop
ProcedureReturn sOutBuf
EndProcedure
ok=0
CallDebugger
OpenFile(1,"uucode.txt")
While Eof(1)=0
phrase$=ReadString(1)
If Left(phrase$,3)="end"
ok=0
EndIf
If ok=1 ; on recupere le binaire
phrase$=(Right(phrase$,Len(phrase$)-1)) ; on retire le premier caractere
phrase$=(Left(phrase$,Len(phrase$)-1)) ; on retire le dernier caractere
phrase$=UUDecode(phrase$)
resul$= resul$+phrase$
EndIf
If Left(phrase$,9)="begin 644"
ok=1
EndIf
Wend
CloseFile(1)
OpenFile(1,"uucode.jpg")
WriteString(1,resul$)
CloseFile(1)
ok=0

http://michel.dobro.free.fr/bidouilles/uucode.txt