FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV (précédentes versions)
→
Crypte/compresse VS zlib
Crypte/compresse VS zlib
Débuté par Youn, 10 jan. 2006 09:40 - 1 réponse
Connectez-vous…
Youn
#1
Posté le 10 janvier 2006 - 09:40
Pour pallier les défauts de la methode crypte ou compresse censées compresser des données contenues dans un chaine, voici les sources de 2 fonctions permettant de compresser et décompresser avec la dll open source zlib (
www.zlib.net
)
En effet, ni crypte ni compresse ne fonctionnent sur un fichier binaire qui aurait été chargé dans une chaine par fchargetexte par exemple.
(12 heures de galères avec windev pour pondre le code ci dessous, et oui ce ne sont pas les codes les plus long, les plus faciles a trouver)
PROCEDURE ZlibComp(pdata)
monresultat est une chaîne
tai,tai2 est un entier long sans signe
tai=Taille(pdata)
tai2=Taille(pdata)+(Taille(pdata)*0.1)+12
monresultat=Répète(Asc(0),tai2) //voir api pour comprendre, en fait c pour dimensionner correctement le pointeur en mémoire
SI API("zlib1.dll","compress2",&monresultat,&tai2,&pdata,tai,9)=0 ALORS
SI tai2<tai ALORS //compression rentable ?
RENVOYER Gauche(monresultat,tai2)
SINON
RENVOYER pdata //la meme chose si la compression n'est pas rentable
FIN
SINON
RENVOYER pdata //on renvoie la meme chose si la compression a echouée
FIN
PROCEDURE ZlibUncomp(pdata)
tai,tai2 est un entier long sans signe
monresultat est une chaîne
resapi est un entier
tai=Taille(pdata)
monresultat=Répète(Répète(" ",100),tai) //tampon de réception 10 fois plus gros (le repete emboité sert a améliorer le rendement de la fonction en CPU)
tai20*tai
resapi=API("zlib1.dll","uncompress",&monresultat,&tai2,&pdata,tai) // decompression ok ALORS
SELON resapi
CAS 0 : //ok
RENVOYER Gauche(monresultat,tai2)
CAS -3 : //data non valide pour la décompession, or corruption detected
RENVOYER pdata//pdata car la chaine n'a peut etre pas été comprimée
AUTRE CAS : RENVOYER "ERROR"
FIN
Signaler
0
0
Damien ROCHE
#2
Membre enregistré
6 messages
Posté le 13 mai 2022 - 12:50
Bonjour,
Quel est le format de pdata svp ? Peut-on passer une chaine de caractères ?
Merci
Signaler
0
0
→ Revenir à WINDEV (précédentes versions)
WINDEV 28
WEBDEV 28
WINDEV Mobile 28
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte