CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] fread et zip...

maskware
maskware
Niveau 8
03 août 2004 à 22:52:27

Bonjour ! J´utilise zlib et j´ai quelques soucis ! Je reussis a lire directement des informations a partir d´un fichier zippé mais je me retrouve face a un probleme lorsque j´essaie d´optimiser.

J´extrais directement tout le fichier en memoire ( plus rapide qu´une lecture variable par variable :) mais je me retrouve avec un gros buffer que je dois lire en binaire et je ne peux rien faire avec ! Lorsque c´est sur le disque, on peut utiliser fread(...), mais lorsque c´est directement dans la memoire, on utilise... ? !

N´existe t´il pas en C des fonctions pour decoder directement le binaire ? comme il existe les scanf, etc... pour manipuler l´ASCII ?

JeanYvesYves
JeanYvesYves
Niveau 10
04 août 2004 à 00:41:42

ben fread copie de ton disque en mémoire, si c´est déja en mémoire c´est bon !
ce que tu veux peut etre dire, c´est que sur le disque, tu vas faire un fread de 2 octets, puis un fread de 4 octets, etc... non ?
si tu veux faire pareil en mémoire : tu te crées une variable " curseur=0"

Bon imaginons un exemple concret :
1er exemple : tu as un int a récupérer sur le disque, que tu mets dans le " int dest"

fread(&,1,sizeof(int),F);

maintenant tu veux le récupérer depuis le buffer : char* buf :

memcpy(&,buf+curseur,sizeof(int));
curseur+=sizeof(int);

sinon tu as :

fscanf qui lit l´ASCII depuis un fichier
sscanf qui lit l´ASCII depuis un buffer mémoire

de meme sprintf permet d´écrire une chaine formatée dans un buffer ( printf vers l´écran stdout, et fprintf vers le disque)

en espérant avoir répondu a ta question :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment