IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Compression de données


Sujet :

C

  1. #21
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    j'ai changé mon code !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void dump(unsigned char t[], int nb)
    {
        int i;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[i])
                nb++;
        }
        printf("\n");
    }
    et quand je lance mon prog il y a que 0000

  2. #22
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    j'ai changé mon code !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void dump(unsigned char t[], int nb)
    {
        int i;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[i])
                nb++;
        }
        printf("\n");
    }
    Au-moins tu commences à comprendre l'utilité des fonctions. Toutefois à quoi sert d'incrémeter "nb" si tu ne l'utilises pas ??? (accessoirement même si tu ne l'incrémentais pas je demanderais quand-même à quoi il sert...)

    Citation Envoyé par florian140001 Voir le message
    et quand je lance mon prog il y a que 0000
    Ben ça dépend surtout de ce que tu passes à ta fonction dump(). Si tu lui passes par exemple un tableau vide, sa boucle ne se fera pas...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #23
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Au-moins tu commences à comprendre l'utilité des fonctions. Toutefois à quoi sert d'incrémeter "nb" si tu ne l'utilises pas ?
    nb est le nombre d'octet du tableau
    je penses que nb peut me servir pour faire commencer chaque ligne par le numéro du premier octet de la ligne qui sera en décimal

  4. #24
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Il y a de l'effort.
    Ok, "nb" est le nombre d'octets du tableau. Donc "nb" correspond à une limite et ne peut absolument pas servir pour afficher un compteur.
    Si par exemple je veux compter jusqu'à "N", je ne pourrai absolument pas utiliser "N" à la fois comme limite de mon compteur et à la fois comme compteur lui-même.

    Te faut une autre variable "v" qui compte de 0 jusqu'à "nb" et là tu affiches t[v] (j'utilise "v" comme nom symbolique donc toi tu peux utiliser le nom que tu veux). Essaye déjà comme ça. Pour l'affichage par 16 ça viendra ensuite.

    Attention, il y a toutefois un détail que je ne maitrise pas: comment toi tu vois l'utilisation de ta fonction. Est-ce que
    • tu veux d'abord tout stocker les 3000 octets de ton fichier dans un tableau et appeler dump() pour les afficher en une fois
    • tu préfères lire 16 octets et appeler dump() pour les afficher, puis lire les 16 octets suivants et rappeler de nouveau dump() et etc jusqu'à la fin du fichier

    Les deux solutions sont possibles, ont toutes deux des avantages et des inconvénients. Mais la programmation dans les deux cas n'est pas la même. Donc c'est à toi de réfléchir et faire un choix.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #25
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    En gros je fait un do while

  6. #26
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Attention, il y a toutefois un détail que je ne maitrise pas: comment toi tu vois l'utilisation de ta fonction. Est-ce que
    • tu veux d'abord tout stocker les 3000 octets de ton fichier dans un tableau et appeler dump() pour les afficher en une fois
    • tu préfères lire 16 octets et appeler dump() pour les afficher, puis lire les 16 octets suivants et rappeler de nouveau dump() et etc jusqu'à la fin du fichier

    Les deux solutions sont possibles, ont toutes deux des avantages et des inconvénients. Mais la programmation dans les deux cas n'est pas la même. Donc c'est à toi de réfléchir et faire un choix.
    Je veux afficher le contenu d'un tableau d'octet, donc 16 octets par lignes et que chaque ligne commence par le numéro du premier octet de la ligne mais en décimal !
    et Nb me permet de connaitre le nombre d'octet du tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void dump(unsigned char t[], int nb)
    {
     
    do
    {
    	int i,v;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[v])
     
        }
        printf("\n");
    }
    while(i=16)

  7. #27
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void dump(unsigned char t[], int nb)
    {
     
    do
    {
        int i,v;
        v=0;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[v])
                v = v+1; //v++
        }
        printf("\n");
    }
    while(v=16)
    v++ me fait penser à nb[/CODE]

  8. #28
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    Je veux afficher le contenu d'un tableau d'octet, donc 16 octets par lignes et que chaque ligne commence par le numéro du premier octet de la ligne mais en décimal !
    Oui, je sais. C'est le but à atteindre et c'est déjà expliqué au début du topic

    Ce que je te dis, c'est que tu as deux façons d'atteindre ce but
    1. tu lis tous les octets du fichier que tu stockes dans un tableau d'octets. Ensuite, une fois le fichier complètement lu, tu appelles ta fonction qui se charge d'afficher tous les octets ligne par ligne
    2. tu lis 16 octets du fichier puis tu les envoie à ta fonction qui se charge de les afficher sur une ligne. Puis tu lis les 16 octets suivants que tu envoies de nouveau à ta fonction qui les affiche sur une seconde ligne. Et etc jusqu'à la fin du fichier

    Les deux façons de faire sont possibles mais le code de la fonction ne sera pas le même dans un cas ou dans l'autre. Dans le premier cas il te faut un tableau d'octets de la taille du fichier (auras-tu assez de mémoire ? comment fais-tu pour connaitre la taille nécessaire à l'avance ?) alors que dans l'autre, un tableau de 16 octets suffit.

    Citation Envoyé par florian140001 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void dump(unsigned char t[], int nb)
    {
     
    do
    {
        int i,v;
        v=0;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[v])
                v = v+1; //v++
        }
        printf("\n");
    }
    while(v=16)
    Pourquoi cette boucle sur "i" variant de 0 à 15 que tu n'utilises pas ? Pourquoi deux boucles imbriquées alors que je t'ai déjà dit qu'une suffisait ? Si tu déroules ce code avec un papier et un crayon pour écrire ce que le code est sensé écrire qu'obtiens-tu ? Que représente dans ton esprit la première boucle ? Et la seconde ? As-tu remarqué qu'écrire while (v=16) c'était une affectation et non une comparaison et que cette affectation était toujours vraie ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #29
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    je pensais le do while me permettrai de faire cette boucle jusqu'à que j'arrive à 16
    et c'est ta première idée que je veux

  10. #30
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    je pensais le do while me permettrai de faire cette boucle jusqu'à que j'arrive à 16
    Tu n'as pas besoin d'arriver jusqu'à 16. Ce qu'il faut, c'est arriver jusqu'à nb et rien d'autre. C'est con parce que ton code d'hier 16h56 était vraiment pas mal du tout.

    Citation Envoyé par florian140001 Voir le message
    et c'est ta première idée que je veux
    Ok. C'est noté.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #31
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    le problème avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    int main()
     
    {
     
    int file;
     
    file = open(fileName,O_BINARY|O_RDONLY);
     
    if ( file < 0 )
     
    { // failure
     
        return ( __LINE__ );
     
    }
     
    do
     
    {
     
        size = read ( file, data, 16 );
     
        for ( int i = 0; i < size; i++ )
     
        {
     
            printf ( "%02x ", data[ i ] );
     
        }
     
        printf ( "\n" );
     
    }
     
    while ( size==16 );
     
    close ( file );
     
    }
    est que mon compilateur gcc ne le comprends pas

    si je reprends :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void dump(unsigned char t[], int nb)
    {
     
    do
    {
    	int i,v;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[v])
     
        }
        printf("\n");
    }
    while(i=16)
    il faudrait que je rajoute un compteur pour nb ?

  12. #32
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Tu n'as pas besoin d'arriver jusqu'à 16. Ce qu'il faut, c'est arriver jusqu'à nb et rien d'autre. C'est con parce que ton code d'hier 16h56 était vraiment pas mal du tout.
    pour l'instant j'ai ça
    Nom : 33.png
Affichages : 131
Taille : 2,6 Ko

  13. #33
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    le problème avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    int main()
     
    {
     
    int file;
     
    file = open(fileName,O_BINARY|O_RDONLY);
     
    if ( file < 0 )
     
    { // failure
     
        return ( __LINE__ );
     
    }
     
    do
     
    {
     
        size = read ( file, data, 16 );
     
        for ( int i = 0; i < size; i++ )
     
        {
     
            printf ( "%02x ", data[ i ] );
     
        }
     
        printf ( "\n" );
     
    }
     
    while ( size==16 );
     
    close ( file );
     
    }
    est que mon compilateur gcc ne le comprends pas
    Et toi, est-ce que tu le comprends ce code ? Parce que parler de "fileName", de "data" ou de "size" sans avoir défini de quoi il s'agissait...

    Citation Envoyé par florian140001 Voir le message
    si je reprends :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void dump(unsigned char t[], int nb)
    {
     
    do
    {
    	int i,v;
        printf("0000");
        for(i=0;i<15;i++)
        {
                printf("%h",t[v])
     
        }
        printf("\n");
    }
    while(i=16)
    il faudrait que je rajoute un compteur pour nb ?
    Citation Envoyé par florian140001 Voir le message
    En effet j'ai pas un niveau excellent en c pour celà. Je suis meilleur avec le SDL
    Pfff tu me lamentes tellement tu pannes que dalle à que dalle. Parce que que ce soit en C ou en SDL ou en n'importe quel langage ; le principe est toujours le même: pour afficher un tableau d'octets, il suffit de boucler sur le tableau d'octets et d'afficher les octets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void dump(unsigned char t[], int nb) {
    	int i;
    	for (i=0; i < nb; i++)
    		printf("%h ", t[i]);
    }
    Citation Envoyé par florian140001 Voir le message
    pour l'instant j'ai ça
    Nom : 33.png
Affichages : 131
Taille : 2,6 Ko
    Mouais. Ce serait bien si tu indiquais comment tu appelles ta fonction. Très certainement (et je l'ai déjà dit) avec un tableau vide...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #34
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Je l'ai indiqué au dessus comment j appeler la fonction

  15. #35
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main()
    {
        unsigned char toto[48]={0x00,0x01,0x02,0x03,0xFF,0xFE,0xFD,0x00};
        int bn;
        bn=48;
        dump(toto,bn);
    }
    fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void dump(unsigned char t[], int nb)
    {
        int i,j;
        j=0;
        printf("0000");
        for(i=0;i<nb;i++)
        {
            printf("%02x",t[i]);
            if(j==15)
            {
              printf("\n");
              printf("%04d",j);
            }
        }
        printf("\n");
    }
    Nom : 34.png
Affichages : 90
Taille : 2,7 Ko
    voilà le résultat que j'éxécute

  16. #36
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 633
    Points : 1 596
    Points
    1 596
    Par défaut
    Hello,

    Où incrémentes-tu j ?

    Et tu devrais mettre un espace dans le format de tes printf(): printf("0000 "); etc....
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  17. #37
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Merci à tous mais j'ai réussi c'est bon aprs 48h de recherche

  18. #38
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par florian140001 Voir le message
    c'est bon aprs 48h de recherche
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  19. #39
    Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Septembre 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2017
    Messages : 47
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    void dump(unsigned char t[], int nb)
    {
        int i,compteur,k;
        i = 0;
        compteur = 0;
        k = 0;
        nb = 51;
        printf("%04d ",i);
        for(i=0;i<nb;i++)
        {
            printf("%02x ",t[i]);
            if(k==15)
            {
              printf("\n");
              compteur = compteur+16;
              printf("%04d ",compteur);
              k = 0;
            }
        k++;
        }
    }
     
    int main()
    {
        unsigned char toto[51]={0x00,0x01,0x02,0x03,0xFF,0xFE,0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFA};
        int bn;
        bn=51;
        dump(toto,bn);
    }

    j'ai juste un soucis d'octet

    Nom : 36.png
Affichages : 79
Taille : 3,7 Ko

  20. #40
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 118
    Points : 32 984
    Points
    32 984
    Billets dans le blog
    4
    Par défaut
    - compteur et k sont superflues
    - opérateur modulo
    - nb est réassignée arbitraitement à 51 dans la fonction
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [Algo] Compression de données
    Par GyZmoO dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/03/2007, 12h18
  2. Compresser les données avant insertion ?
    Par GregPeck dans le forum Outils
    Réponses: 2
    Dernier message: 07/08/2006, 16h09
  3. Compression de données
    Par mzt.insat dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/03/2005, 15h01
  4. Compression de données au format Zip avant sauvegarde
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/09/2004, 16h40
  5. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo