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 :

cryptage fichier texte


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Par défaut cryptage fichier texte
    Bonjours !
    Je voudrais créer un programme qui ouvre un fichier et qui crypte le texte du fichier. Il faut ensuite copier le texte crypter, le coller dans un autre fichier.
    J'ai commencer a programmer, mais je n'y arrive pas. Voici mon 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #include <stdio.h>
    #include <stdlib.h>
     
    FILE *fopen(const char NomFichier, const char ModeOuverture ) ;
    int fclose(FILE* pointeurSurFichier);
     
    const int DECALAGE = 5;
    const int MINU = 0;
    const int MAJ = 1;
     
    //Fonction de cryptage :
    void crypt(char *pointeur_chaine)
    {
    	int indicateur;
    	if(*pointeur_chaine>='a' && *pointeur_chaine<='z')
    indicateur=MINU;
    	else if(*pointeur_chaine>='A' && *pointeur_chaine<='Z')
    indicateur=MAJ;
    	else return;
     
    *pointeur_chaine = *pointeur_chaine + DECALAGE;
     
    if((indicateur==MINU && *pointeur_chaine>'z')
     
       || (indicateur==MAJ && *pointeur_chaine>'Z'))
     
       *pointeur_chaine = *pointeur_chaine -26;
    }
     
     
    void main()
    {
     
    	FILE * source = fopen("texte.txt","r");
       FILE * crypte = fopen("crypte.txt","w");
     
    	char *pointeur = NULL;
    int compteur;
     
     while( pointeur_chaine = fgetc( texte ) && caractere != EOF )
       {
       crypt pointeur_chaine;
           fputc(crypt, crypte);
       }
     
     fclose(texte);
       fclose(crypte);
       getch();
       return 0;
    }
    Merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et quelle est la question ?

    et pourquoi poster dans Biblothèque Standard ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 11
    Par défaut
    Mauvaise idée d'ouvrir un fichier en read et en write en même temps.

    Mais, c'est vrai que la question n'est pas vraiment claire, faudrait être plus explicite.

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Il y a des ... question que je me pose :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <stdio.h>
     
    FILE *fopen(const char NomFichier, const char ModeOuverture ) ;
    int fclose(FILE* pointeurSurFichier);
    Puisque tu as inclus stdio, a quoi sa sert de mettre le prototype de fopen et fclose ??


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    const int DECALAGE = 5;
    const int MINU = 0;
    const int MAJ = 1;

    Vaudrait mieux en faire de define plutot que des constante global, ca prend moins de place et je trouve ca plus propre.

    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
     
    void main()
    {
        FILE * source = fopen("texte.txt","r");
        FILE * crypte = fopen("crypte.txt","w");
     
        char *pointeur = NULL;
        int compteur;
     
     while( pointeur_chaine = fgetc( texte ) && caractere != EOF )
       {
       crypt pointeur_chaine;
           fputc(crypt, crypte);
       }
     
     fclose(texte);
       fclose(crypte);
       getch();
       return 0;
    }
    variable caractere non defini.


    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
     
    const int DECALAGE = 5;
    const int MINU = 0;
    const int MAJ = 1;
     
    //Fonction de cryptage :
    void crypt(char *pointeur_chaine)
    {
    	int indicateur;
    	if(*pointeur_chaine>='a' && *pointeur_chaine<='z')
    indicateur=MINU;
    	else if(*pointeur_chaine>='A' && *pointeur_chaine<='Z')
    indicateur=MAJ;
    	else return;
     
    *pointeur_chaine = *pointeur_chaine + DECALAGE;
     
    if((indicateur==MINU && *pointeur_chaine>'z')
     
       || (indicateur==MAJ && *pointeur_chaine>'Z'))
     
       *pointeur_chaine = *pointeur_chaine -26;
    }
    Uh, c'est plutot lourd dans ce style. Tu aurai pus faire ceci :


    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
     
    #define DECALAGE  5
     
    void crypt(char *pointeur_chaine)
    {
        if('a' <= (*pointeur_chaine) && (*pointeur_chaine) <= 'z')
        {
            (*pointeur_chaine) += DECALAGE;
     
            if((*pointeur_chaine) < 'a')
                (*pointeur_chaine) += 26;
            else
                if('z' < (*pointeur_chaine))
                    (*pointeur_chaine) -= 26;
        }
        else 
            if('A' <= (*pointeur_chaine) && (*pointeur_chaine) <= 'Z')
            {
                (*pointeur_chaine) += DECALAGE;
     
                if((*pointeur_chaine) < 'A')
                    (*pointeur_chaine) += 26;
                else
                    if('Z' < (*pointeur_chaine))
                        (*pointeur_chaine) -= 26;
            }
    	else
                return;
    }

    Voila, apres c'est une histoire de gout et de couleur

    EDIT : pense a verifier que tes fichier sont bien chargé, et si ce n'est pas le cas (Texte == NULL), alors affiche le message d'erreur avec un perror.

Discussions similaires

  1. Lecture d'un fichier texte et cryptage
    Par colapsus dans le forum VB.NET
    Réponses: 3
    Dernier message: 30/09/2011, 17h59
  2. [VB.NET]fichier texte sécurisé. Cryptage ?
    Par Golzinne dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/10/2006, 13h09
  3. [Cryptage] Récupérer Date cryptée dans fichier text
    Par SansSucre dans le forum Access
    Réponses: 2
    Dernier message: 29/07/2006, 13h03
  4. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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