begin process at 2012 05 29 04:17:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

fichier compresser


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fichier compresser

lundi 6 août 2007 à 12:17:23 | fichier compresser

mitali

Bonjour tt l monde,
j'ai une fonction qui me premet de récuperer  le contenu d'un fichier ,ça bien marcher avec les fichiers textes mais le probléme c'est que ça marche pas pour les fichiers compresser de type .tar.gz. Le code de la fonction est le suivant:
char* GetContent(char *adr_fic="c:\\test.zip")

{

int size;

ifstream fichier(adr_fic,ios::in|ios::binary);

// taille du fichier

fichier.seekg(0,ios_base::end);

size= fichier.tellg();

fichier.seekg(0,ios_base::beg);

char * buffer=newchar[size];

buffer[size]=

'\0';

long longfich=size;

for (int i=0;i<longfich;i+=size)

{

long nbdonneaenv = (longfich-i>size)?size:longfich-i;

fichier.read(buffer,nbdonneaenv);

return buffer;

}
Merci pour votre soutien

lundi 6 août 2007 à 13:37:18 | Re : fichier compresser

BruNews

Administrateur CodeS-SourceS

char *buffer = newchar[size];
buffer[size] = '\0'; // NIET !!!

char buf[10];
10 octets dispos, de buf[0] jusque buf[10-1];

je stoppe ici.

ciao...
BruNews, MVP VC++

lundi 6 août 2007 à 14:12:10 | Re : fichier compresser

mitali

Merci pour ton aide BruNews,Mais est ce que tu peu me donner plus de détail,
je suis nouneau en c++
Merci une autree fois
lundi 6 août 2007 à 14:41:24 | Re : fichier compresser

BruNews

Administrateur CodeS-SourceS
si tu veux ajouter un octet (0 final dans ton cas, bien que je ne vois pas à quoi servira), faut allouer size+1.

ciao...
BruNews, MVP VC++
lundi 6 août 2007 à 16:12:37 | Re : fichier compresser

omnia

utilise plutot win32 bye
lundi 6 août 2007 à 16:29:16 | Re : fichier compresser

SAKingdom

Membre Club
Ça donnera quoi de plus s'il refait les mêmes erreurs avec l'API Win32 ?

Je ne comprend rien à cette partie:
long longfich=size;
for
(int i=0;i<longfich;i+=size)

{

long nbdonneaenv = (longfich-i>size)?size:longfich-i;

fichier.read(buffer,nbdonneaenv);

return buffer;

}

À quoi sert longfich et surtout, à quoi sert la boucle (avec un return à l'intérieur soit dit en passent) ?

Voici quelque chose de simple:

unsigned char *GetContent (char *filename, int &rbytes)
{
    ifstream file(filename, ios_base::binary);
    if(file.fail()) return 0;

    file.seekg(0, ios_base::end);
    int size = file.tellg();
    file.seekg(0, ios_base::beg);

    unsigned char *buffer = new unsigned char[size];
    if(buffer) {
        file.read((char*)buffer, size);
        rbytes = file.gcount();
    }

    file.close()
    return buffer;
}


Je ne donne aucune explication. Essais de comprendre par toi-même ce qui est fait.


C++ (@++)

lundi 6 août 2007 à 16:32:08 | Re : fichier compresser

SAKingdom

Membre Club
Ce qui ne devrais pas être trop difficile.

Saleté de police. J'ai toujours eu des problèmes avec elle.

C++ (@++)

lundi 6 août 2007 à 16:57:41 | Re : fichier compresser

mitali


Merci SAKingdom,
J'ai utilisé ton code,mais j'ai tjr le même souci, si je donne comme fichier compresser de type .tar.gz ça m'affiche que  2 charactères qui son récuperer du buffer
lundi 6 août 2007 à 17:10:11 | Re : fichier compresser

SAKingdom

Membre Club
Non. Buffer contient tout le fichier.
Tu ne peux pas afficher ça comme du texte tout simplement parce que ce n'en est pas voilà tout.

C++ (@++)

lundi 6 août 2007 à 18:08:56 | Re : fichier compresser

mitali

Merci bcp,je vais t'éxpliquer mon probléme ,je suis entrain de développer une application qui me permet d'envoyer des fichier tar.gz vers un serveur , je donne donc le contenu dans un buffer mais du coté serveur je reçois le fichier vide ,pour l'envoi j'utilise la fonction HttpSendRequest (winniet.h):

unsignedchar *buffer=0;

buffer=GetContent("c:\\test.tar.gz");

int result = HttpSendRequest(m_hRequest, bstrHeaders,strlen(bstrHeaders),buffer,strlen(buffer));

if (result) returntrue;

1 2

Cette discussion est classée dans : fichier, buffer, size, compresser, ios


Répondre à ce message

Sujets en rapport avec ce message

Mettre un fichier .exe dans un buffer [ par guiguikun ] Je n'arrive pas a mettre un fichier executable en memoire.sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)voici m utiliser l adresse complete pour l ouverture d un fichier [ par gagaet22 ] Bonjour à tous! J utilise la fonction _getcwd pour connaitre l adresse le dossier courant puis je rajoute le nom du fichier que je veux ouvrir. mai Help fread [ par talaron ] J'ai un fichier texte avec des chaines de characteres disposés comme ceci:chaine1chaine2chaine3etc...elles sont toutes de la meme longeur (5) et j'uti conversion d'un string [ par bastiente ] Ba$t :bonjour... Voila je travaille sur un fichier ou figure la valeur : 32 989,88Je dois la retourner dan un autre fichier. Ca c'est fait, mai je doi Nombres dans fichier .txt [ par Franckyom50 ] Salut à tous !J'aimerais savoir comment je peux récupérer une série de nombres qui se trouvent dans un fichier texte, sous cette forme :365221655236-2 Transfert d'un fichier d'un ftp [ par header ] Salut,J'ia besion d'aide : pour que tlm puisse comprendre voici mon source : char buffer[DWN_BUFFER]; // c un define 4096unsigned int count = DWN_BUFF Gestion de flux [ par djfab ] Bonjour,J'ai une petite question à propos des fluxJ'inclu fstream.h, je crée un objet fic, je fais fic.open("fichier.dat", ios:in)Et là, en fait, bah, utilisation d'un exe dans du code [ par sampq ] voila mon problème:je cherche à compresser une grande quantité de fichier mp3 en real audio. Pour cela il l'existe le programme producer.exe utilisabl envoi fichier via socket [ par elanspeech ] Bonjour,J'ai fait un client/serveur, la communication se passe bien. cependant, je ne parviens pas a envoyer plusieurs fichiers a la suite avec la soc Fichiers .jpg [ par StevenJLMunn ] Bonjour à tous, je voudrais faire un crypteur de fichier .jpg.Pour faire cela je fais déja des essai il faut ke je puisse lire le fichier .jpg en mode


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,683 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales