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 :

pb encodage avec C#


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 52
    Points
    52
    Par défaut pb encodage avec C#
    Bonjours,
    Actuellement en 2ème année BTS IG j'aimerai traduire cette algo en C# mais j'ai des soucis!
    Voici l'algo à faire
    1. Ecrire la fonction de cryptage d’un caractère crypt. Elle reçoit en paramètre un caractère à crypter et la clef, et renvoie le caractère équivalent crypté. On dispose de la fonction codeASCII (donnée x :caractère) : entier qui renvoie le nombre compris entre 0 et 255 correspondant au code ASCII du caractère passé en paramètre et de la fonction symétrique carASCII (donnée y : entier) : caractère qui renvoie le caractère associé au code ASCII compris entre 0 et 255.
    Correction de l'algo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Fonction crypt (entrée c : caractère , entrée k : entier) : caractère
    Début   
             retourner (carASCII(codeASCII((c + k) MOD 256)))
    Fin
    Voici ce que j'ai fait mais ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public static string crypt(string c, int k )
            {
                string r;
     
                ASCIIEncoding asci=new ASCIIEncoding();
     
                return (asci.GetString(asci.GetBytes((c + k) % 256)));
     
            }
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Qu'est ce que tu veux dire par cela ne marche pas ?
    Tu n'obtiens pas le résultat voulu ? Dans ce cas là qu'est ce que tu obtiens ?
    Cela génére une erreur ? Qu'elle est cette erreur ?

    C'est toi qui a fait l'algo ? Parce que moi j'aurais plutot fait cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Fonction crypt (entrée c : caractère , entrée k : entier) : caractère
    Début   
             retourner (carASCII((codeASCII(c) + k) MOD 256))
    Fin
    Faire un string + int cela ne marche pas, il faut convertir le string en int ou l'int en string, d'ailleurs dans ce cas si tu convertis l'int en string tu fait une concaténation avec le symbole +.
    Mai si k vaut "A" le convertir en int32 c'est pas térrible, je ne sais pas si la fonction convert de c# gère cela et te retourne le code ASCII.

    Si tu fonctionne avec mon algo, tu évites ce problème, tu commences par convertir ton caractère en code ascii, puis s'il le faut en entier, et après tu peut faire l'addition.

    Une dernière chose, ton algo parle de caractère, et toi tu utilises des chaines de caractères. Il faudrait peut être utiliser les char plutot que les string, non ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    le souci enfaite c'est que je n'arrive pas à le traduire en C#

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Si tu veux que je t'aide commence par répondre à mes questions et tester les propositions que je te fait.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Que te dit le compilateur?
    S'il ne te dit rien, que te retourne ton programme? Lève t il une exception ?

    En effet, tu devrais plutot utiliser
    plutot que
    Pourquoi utiliser AsciEncoding si in te fournit les méthodes de conversion ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static char crypt(char c, int k )
            {
                return (carASCII((codeASCII(c) + k) % 256)));          
            }
    Devrait fonctionner... Mais réponds aux questions, on pourra mieux t'aider !
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Voila ce que j'ai fais et ceci marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public static char crypt(char c, int k )   // déclaration de la fonction
            {
                 c=char.Parse("T"); // initialisation de c et k 
                k = 3;
     
                return ((char)((int)(((c) + k)% 256)));  // le calcul
     
            }
    Qu'en pense-tu?

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Si cela marche je dirais que c'est l'essentiel, mais : devrait te renvoyer un int, non ? Alors pourquoi le caster de nouveau en int ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Je m'auto cite :
    Pourquoi utiliser AsciEncoding si in te fournit les méthodes de conversion ?
    Pour reprendre ma question :

    Pourquoi caster simplement alors que tu es censée utiliser une fonction fournie ??


    Au passage, n'oublie pas le tag "Résolu" si tu considère le problème comme tel
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

Discussions similaires

  1. [Mail] Problème d'encodage avec phpmailer
    Par catmary dans le forum Langage
    Réponses: 8
    Dernier message: 29/06/2006, 10h56
  2. Problème d'encodage avec Python
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 22/02/2006, 14h36
  3. Pb encodage avec javascript et JSP
    Par marti dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 21/12/2005, 10h06
  4. Porblème d'encodage avec un EDI java sous Suse 9.3 pro
    Par HNT dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 12/11/2005, 12h32
  5. Encodage avec XML
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 25/10/2005, 10h48

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