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

VB 6 et antérieur Discussion :

Infos sur ce bout de code vb


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 362
    Points : 141
    Points
    141
    Par défaut Infos sur ce bout de code vb
    Bonjour à tous !

    Voila j'ai trouvé sur le net un algo de cryptage pour faire des codes barre EAN 128.
    Ce code est en vbs, et moi j'ai besoin de le retranscrire en C++, bref, rien d'impossible, sauf qu'en vbs je suis plus que débutant.

    Il y a un petit bout de code, simple je pense, qui me fait réfléchir, et peut être trop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        For i% = 1 To Len(chaine$)
          Select Case Asc(Mid$(chaine$, i%, 1))
          Case 32 To 126, 198
          Case Else
            i% = 0
            Exit For
          End Select
        Next
    En gros ce que je comprends la, c'est que pour chaque valeur de i% allant de 1 à la taille de ma chaine, je vais récupérer la valeur ascii de chaque caractère de ma chaine.

    non?

    J'ai des questions:
    A quoi me sert les autres "Case" et aussi, ou est stockées ma valeur ascii, puisque qu'aucune variable n'a été créée pour recevoir cette info...?

    Merci de pouvoir m'aider

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    En fait le select case là te fais arrêter le traitement dès qu'un caractère rencontré n'est pas asc(32) ou asc(126) ou asc(198).

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Citation Envoyé par Vld44 Voir le message
    En fait le select case là te fais arrêter le traitement dès qu'un caractère rencontré n'est pas asc(32) ou asc(126) ou asc(198).
    Bonjour,
    Toute petite rectification...
    caractère rencontré n'est pas compris de (asc(32) A asc(126)) ou asc(198)
    Et il manque certainement du code dans le premier test. Effectivement la valeurs ascii n'est pas stockée.
    A+
    Edit: A moins que la fonction serve à valider qu'il n'y à pas de signes interdits dans la variable, au quel cas i% ne retournerait pas 0
    Edit 2: Mais dans ce cas il y a un petit bug, si une chaine vide est envoyée > retourne 1 et si une lettre est envoyée retourne aussi 1, je verrais plutôt ça de cette façon...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        For i% = 0 To Len(chaine$)-1
          Select Case Asc(Mid$(chaine$, i%+1, 1))
          Case 32 To 126, 198
          Case Else
            i% = 0
            Exit For
          End Select
        Next
        if i%=0 then chaine non valide

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    pourquoi manque-t-il du code ?

    Selon moi le créateur de ce morceau de code a voulu faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For i% = 1 To Len(chaine$)
          if Asc(Mid$(chaine$, i%, 1)) < 32 or _
          ((Asc(Mid$(chaine$, i%, 1)) > 126) and (Asc(Mid$(chaine$, i%, 1)) <> 198)) then exit for
        Next
    un moyen comme un autre de faire une exclusion.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour vld44,
    Ont a du se croisé entre mon poste, le tient et mes édits,
    Mais revois l'édit2 ?
    A+

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Salut !

    En effet on s'est croisés je n'ai pas tenu compte de tes édits.
    Je suis d'accord avec ton edit1, et pour le deuxième aussi si et seulement si la chaîne vide est considérée comme interdite dans son algo.

    a+

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Freud44 , si les explications te conviennent ce serrait sympa de valider

    Vld44 : Un algo qui admettrait une chaine vide

    A+

Discussions similaires

  1. [andromda]Infos sur andromda, générateur de code JAVA
    Par ugos dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 08/09/2009, 15h30
  2. Eclaircissements sur un bout de code
    Par namstou3 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/09/2007, 20h47
  3. explication sur un bout de code
    Par poporiding dans le forum C++
    Réponses: 2
    Dernier message: 27/06/2006, 18h04
  4. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  5. Cherche lien info... sur l'analyse du code
    Par Alec6 dans le forum Qualimétrie
    Réponses: 3
    Dernier message: 03/03/2004, 14h44

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