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

Langage Delphi Discussion :

Calculateur de chaine de caractères avec un séparateur


Sujet :

Langage Delphi

  1. #21
    Membre régulier
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Points : 93
    Points
    93
    Par défaut
    dsl , peu etre que jai mal exprimer le problem
    je veu dire que la second calcule commence de 5A5A , ce qui veudire que le 5A5A est inclue au calcule pour avoire le checksum , sauf que au debut du fichier ya pas de 5A5A .

  2. #22
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Ah, oki, hum, c'est donc assez complexe ton affaire, je n'ai pas les idées claires pour faire un bel algo ....

    Donc première solution, dans le code suivant, tu retires TOUS les +2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if SumPos + EndPos + 2 <= SumLen - EndPos + AmtTransferred then
              CopyMemory(@SumBuffer[0], @SumBuffer[SumPos+EndPos+2], (AmtTransferred - (EndPos + 2)) * REC_SIZE);
     
            SumPos := AmtTransferred - (EndPos + 2);
    Si cela ne fonctionne pas, bidouillons ta fonction CalcCRC32

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CalcCRC32(@SumBuffer[0], (SumLen - CHECK_SIZE) * REC_SIZE, CheckBuffer);
    tu fais une nouvelle fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure CalcCRC32_Plus5A5A(p: pointer; n: integer; var crc32: longword);
    var
      Buffer: array of Byte;
    begin
      SetLength(Buffer, n + 2);
      Buffer[0] := $5A;
      Buffer[1] := $5A;
      CopyMemory(@Buffer[2], p, n);
      CalcCRC32(@Buffer[0], n + 2, crc32);
    end;
    dans CheckSumControl tu met maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CalcCRC32_Plus5A5A(@SumBuffer[0], (SumLen - CHECK_SIZE) * REC_SIZE, CheckBuffer);

    Tu fais cela pour le boulot ou pour l'école ?
    Cela manque de clareté ... tu n'as pas la doc précise du format ?

  3. #23
    Membre régulier
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Points : 93
    Points
    93
    Par défaut
    Tu fais cela pour le boulot ou pour l'école ?
    Cela manque de clareté ... tu n'as pas la doc précise du format ?
    Resalut ,
    je fait sa ni pour l'ecole ni pour le bolot ! ces a titre personnel
    je suis entrain d'apprendre a programmer les Eeprom's est ce fichier la est apartien a un microcontroleur Atmel AT90C512R .

  4. #24
    Membre régulier
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Points : 93
    Points
    93
    Par défaut
    voila une petite explication dans le fichier jointe , cela est la second calcule , et merci d'Avance .
    Images attachées Images attachées  

  5. #25
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    J'ai bien compris ta demande, et as-tu essayé mes deux propositions (en particulier retier les +2, je l'ai testé cela semble fonctionner) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                if SumPos + EndPos (*+ 2*) <= SumLen - EndPos + AmtTransferred then
                   CopyMemory(@SumBuffer[0], @SumBuffer[SumPos + EndPos(*+ 2*)], (AmtTransferred - (EndPos(*+ 2*))) * REC_SIZE);
     
                SumPos := AmtTransferred - (EndPos(*+ 2*));
    Sinon, tu veux modifier de la mémoire d'un micro-controleur, lol, apprend déjà à manipuler toi même le binaire ... tu me peux pas attendre que l'on te mache le travail, ...

  6. #26
    Membre régulier
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2005
    Messages : 120
    Points : 93
    Points
    93
    Par défaut
    Le Problem nes pas resolu , laisse tomber !! et merci de votre aide

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/11/2010, 02h53
  2. Traitement des chaines caractères avec un séparateur
    Par Lolitaaa dans le forum Général Java
    Réponses: 2
    Dernier message: 09/07/2010, 12h21
  3. Reception chaine de caractère avec recvfrom()
    Par innosang dans le forum C
    Réponses: 5
    Dernier message: 31/12/2005, 14h51
  4. Lecture d'une chaine de caractère avec fgets
    Par mayoouketchup dans le forum Langage
    Réponses: 9
    Dernier message: 22/12/2005, 16h17
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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