cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009
-
27 juin 2007 à 21:25
cs_omnia
Messages postés240Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention22 mars 2009
-
30 juin 2007 à 10:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_omnia
Messages postés240Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention22 mars 2009 30 juin 2007 à 10:24
Salut,
nickel ton code BruNews, par contre tu peux pas t'empêcher de mettres des ligne d'asm, lol
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 28 juin 2007 à 13:38
Quel intérêt d'adapter ton code alors que plusieurs sont disponibles ici même ?
En tout cas bravo quand même pour l'avoir écris en JS, ton code peut m'être utile également...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 28 juin 2007 à 12:40
"adapter" ???
C'est typiquement ce qu'il ne faut jamais faire. Pour produire du natif efficace, on a un cahier des charges devant soi mais jamais un listing en interprété.
LleWellA
Messages postés37Date d'inscriptionmardi 18 juin 2002StatutMembreDernière intervention28 juin 2007 28 juin 2007 à 11:39
Bonjour,
Je me permet juste une petite intrusion pour signaler que j'ai fait une version de codage base64, qu'on peut trouver a cette adresse : http://www.javascriptfr.com/code.aspx?ID=15876.
Serait-il possible de l'adapter dans ta formule ?
Merci de jetter un oeil sur ce listing.
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 28 juin 2007 à 09:18
Ok je comprend, merci beaucoup ;-)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 juin 2007 à 22:01
Le second est celui qu'utilise le decodage.
C'est mis dans ligne au dessus:
// on lira en: c = (pmem + 263772), sur 784800 (261000 * 3) octets
sur les 1024*1024 octets, j'en lis 784800 depuis le fichier qui sont mis à l'adresse (pmem + 263772). ça laisse de la marge partant de pmem où je place *d vu qu'on produit 4 octets partant de 3 originaux. Ainsi quand on arrive en fin d'octets encodés, il n'y a pas eu d'écrasement de données.
Dessine le schéma sur un papier pour visualiser le principe.
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 27 juin 2007 à 21:25
Salut
Merci pour le code BruNews, j'ai cependant quelques questions:
- tu utilises 2 tableaux pour les charset, a quoi correspond le deuxième ?
static BYTE cb64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static BYTE cd64[] = "|$$$}rstuvwxyz{$$$$$$$>?@ABCDEFGHIJKLMNOPQRSTUVW$$$$$$XYZ[\\]^_`abcdefghijklmnopq";
pmem = (BYTE*) VirtualAlloc(0, 1024*1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
c = pmem + 263772;
n = (lensrc >= 784800) ? 784800: (DWORD) lensrc; // NE PLUS MODIFIER !!!
A quoi correspond 263772 ? Et 784800 ?
J'ai un peu de mal :$
30 juin 2007 à 10:24
nickel ton code BruNews, par contre tu peux pas t'empêcher de mettres des ligne d'asm, lol
28 juin 2007 à 13:38
En tout cas bravo quand même pour l'avoir écris en JS, ton code peut m'être utile également...
28 juin 2007 à 12:40
C'est typiquement ce qu'il ne faut jamais faire. Pour produire du natif efficace, on a un cahier des charges devant soi mais jamais un listing en interprété.
28 juin 2007 à 11:39
Je me permet juste une petite intrusion pour signaler que j'ai fait une version de codage base64, qu'on peut trouver a cette adresse : http://www.javascriptfr.com/code.aspx?ID=15876.
Serait-il possible de l'adapter dans ta formule ?
Merci de jetter un oeil sur ce listing.
28 juin 2007 à 09:18
27 juin 2007 à 22:01
C'est mis dans ligne au dessus:
// on lira en: c = (pmem + 263772), sur 784800 (261000 * 3) octets
sur les 1024*1024 octets, j'en lis 784800 depuis le fichier qui sont mis à l'adresse (pmem + 263772). ça laisse de la marge partant de pmem où je place *d vu qu'on produit 4 octets partant de 3 originaux. Ainsi quand on arrive en fin d'octets encodés, il n'y a pas eu d'écrasement de données.
Dessine le schéma sur un papier pour visualiser le principe.
27 juin 2007 à 21:25
Merci pour le code BruNews, j'ai cependant quelques questions:
- tu utilises 2 tableaux pour les charset, a quoi correspond le deuxième ?
static BYTE cb64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static BYTE cd64[] = "|$$$}rstuvwxyz{$$$$$$$>?@ABCDEFGHIJKLMNOPQRSTUVW$$$$$$XYZ[\\]^_`abcdefghijklmnopq";
pmem = (BYTE*) VirtualAlloc(0, 1024*1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
c = pmem + 263772;
n = (lensrc >= 784800) ? 784800: (DWORD) lensrc; // NE PLUS MODIFIER !!!
A quoi correspond 263772 ? Et 784800 ?
J'ai un peu de mal :$
Merci