Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de traitement de variable

    16 juin 2008 à 22:44:46

    voila je suis sur un système de cryptage de texte avec Borland c++ builder 6

    mon code marcher impec jusqu'à ce que je veuille améliorée la sécurité, du cryptage, avec une clé paramétrable par l'utilisateur

    Voila l'extrait de ma fonction qui ne marche pas

    for(i=1;i<Texte.Length()+1;i++)
    {
            Texte_crypter_temp+=Texte[i]^Clef_cryptage[j++];
            if(j==NbCrypt)
            {
                    j=0;
            }
    }
    for(k=1;k<Texte_crypter_temp.Length()+1;k++)
    {
            Texte_crypter+=Texte_crypter_temp[k]^Clef[key++];
            if(key == Longueur_Clef)
            {
                    key=0;
            }
    }
    return Texte_crypter;
    



    et quand je teste cette fonction ça m'affiche un message d'erreur de la part de borland et ça me renvoie au fichier dstring.h, a la ligne 150

    ThrowIfOutOfRange(idx);   // Should Range-checking be optional to avoid overhead ??
    



    Dans ma fonction

    Texte_crypter_temp, Texte, Texte_Crypter et Clef sont de type AnsiString
    Longueur_Clef est de type int, tout comme i, j, k et key

    mas fonction est utiliser comme ca :

    Message = crypte(txt_Pseudo->Text + " > " + txt_Msg->Text, Crypt_key->Text, Crypt_key->Text.Length());
    


    j'aimerai savoir ce que j'ai fait de mal et que faire pour arranger mon code
    • Partager sur Facebook
    • Partager sur Twitter
    Projet en cour : Resistance
      17 juin 2008 à 16:30:48

      si Lenght = 5

      pour i = 1 jusqu'à i < 5 + 1 (6)

      Length = 5 donc la plage c'est [0..4]

      i = 1. 1 < 6 ? oui. 1 u [0..4] ok !
      i = 2. 2 < 6 ? oui. 2 u [0..4] ok !
      i = 3. 3 < 6 ? oui. 3 u [0..4] ok !
      i = 4. 4 < 6 ? oui. 4 u [0..4] ok !
      i = 5. 5 < 6 ? oui. 5 u [0..4] NON ! Indice hors limites (Index out of range)

      J'ai utilisé "u" pour "est-dans", je ne me souvient plus du caractère mathématique usuel.


      [EDIT]S.V.P, sur le forum, remplace les tabs par des 4 espaces et met de l'espaces entre tes opérateur et les opérandes. Tu peux l'arranger comme tu veux chez toi mais, ici, arranges-toi pour qu'on puisse lire aisément.

      ex.
      for( int i = 0; i < LIMITE; ++i )
      {
          faire_quelquechose( Obj.methode() );
      }
      

      [/EDIT]
      • Partager sur Facebook
      • Partager sur Twitter

      Probleme de traitement de variable

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown