begin process at 2010 02 10 03:21:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

correspondance dans un tableaux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

correspondance dans un tableaux

mercredi 10 octobre 2007 à 19:00:58 | correspondance dans un tableaux

lolpop

Bonjour, j'aurai une petite question.

j'ai un tableau qui contient les caracteres de l'alphabet de 0 a 25 pour a à z.

Je voudrai a partir d'un caractere obtenir le nombre lui correspondant dans le tableaux.
Par exemple a partir du caractere z obtenir 23 et du caractere b obtenir 1.

Mais je ne sais pas comment faire, ce que je sais faire c'est l'inverse moi :)

Pourriez vous m'aider?
Merci
mercredi 10 octobre 2007 à 20:03:23 | Re : correspondance dans un tableaux

jack

Administrateur CodeS-SourceS
Salut
Je suppose que tes lettres ne sont pas classées alphabétiquement dans ton tableau ... (ton exemple z:23 et b:1 est troublant)

Pour les tableaux, aucune autre solution que de scruter chaque élément du tableau pour retrouver celui qui t'intéresse :
For r = 0 To 25
   If monTableau(r) = LaLettreQueJeCherche Then
      MsgBox "La lettre """ & LaLettreQueJeCherche & """ est dans monTableau(" & CStr(r) & ")"
      Exit For
   End If
Next r
Avec une dimension à 26 éléments, cette boucle ne devrait pas allourdir tes programmes.

Une autre solution consiste à utiliser une Collection à la place d'un tableau.
Une Collection permet d'accéder aux données :
- Soit par l'index        maCollection(23)
- Soit par le contenu   maCollection("z")
Condition : Il faut que le contenu de chaque élément soit unique
Problème : Une collection est lente pour les méthodes Add et Remove, par contre, elle est plus rapide en recherche.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
mercredi 10 octobre 2007 à 20:09:33 | Re : correspondance dans un tableaux

Mikaels35

Sachant que la valeur Asc("a") est égale à 97

n=Asc("b")-97 -> 1

n=Asc("z")-97 -> 25

@+
mercredi 10 octobre 2007 à 21:39:35 | Re : correspondance dans un tableaux

lolpop

Réponse acceptée !
merci,
mais si j'agrandi mon tableau en rajoutant les majuscules et les chiffres de 0 a 9 :)
lol
mercredi 10 octobre 2007 à 22:36:54 | Re : correspondance dans un tableaux

caco64

Idem mais avec une condition.
Par exmple, je suppose que tu as mis les caractères dans l'ordre minuscule, puis majuscule puis chiffres de 0 à 9
Alors le "a" doit renvoyer 1, le "A" 27 et  le "0" 53.
Tu peux faire un truc du style :

sub  mon_tableau()
dim choix_caractere
dim num_asc as integer
dim indice_tableau as integer

'choisir le caractere, par exemple avec un inputbox
choix_caractere = "d"

num_asc = asc(choix_caractere)
if num_asc >= 48 and num_asc <= 57 then
    indice_tableau =  num_asc + 5
elseif num_asc >= 97 and num_asc <= 122 then
    indice_tableau =  num_asc - 96
elseif num_asc >= 65 and num_asc <= 90 then
    indice_tableau =  num_asc - 42
else
    msgbox "pb sur le choix du caractère"
end if
end sub

 il existe un code ascii différent pour les minuscules et les majuscules
La haine aveugle n'est pas sourde
mercredi 10 octobre 2007 à 22:43:02 | Re : correspondance dans un tableaux

xav0

Réponse acceptée !
Bonjour,

tu peux aussi créer un tableau inverse du premier. Ca marche quels que soient les caractères dans le premier tableau.

Dim monTableau(0 To taille_quelconque) As String
'monTableau doit être rempli entièrement avec des caractères...

Dim TableauInv(0 To 255) As Long, Lettre As String

'Initialise le tableau
For i = LBound(monTableau) To UBound(monTableau)
  Lettre = Asc(monTableau(i))
  TableauInv(Lettre) = i
Next i

'Maintenant, il suffit de consulter le deuxième tableau pour obtenir l'index à partir d'un caractère
MsgBox("La lettre A a pour indice " & TableauInv(Asc("A")))
MsgBox("La lettre L a pour indice " & TableauInv(Asc("L")))

mercredi 10 octobre 2007 à 23:28:18 | Re : correspondance dans un tableaux

jack

Administrateur CodeS-SourceS
Re
Hote moi d'un doute : Tu mets les lettres dans un ordre quelconque, on est d'accord ?
(puisque ton exemple, tu as mis le "z" est 23, alors qu'il serait le 26ème élément, donc d'index 25 dans un tableau classé)
Il ne peut donc pas y avoir de correspondance entre le code ASCII de la lettre et le numéro de l'index du tableau !

Si les lettres sont dans l'ordre alphabétique dans ton tableau, je te conseille vivement de prendre des cours de français avant de continuer en programmation. Une erreur pareil sur le numéro d'une lettre dans l'alphabet est quand même une base minimum, non ? et en plus, ça éviterait qu'on perde notre temps ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
jeudi 11 octobre 2007 à 18:26:37 | Re : correspondance dans un tableaux

lolpop

oui j'ai fait une erreur ca arrive non? c'est bien 25 et pas 23 pour le z

merci xav0 pour ta reponse c'est ce a quoi j'ai pensé cette nuit aussi :)


Cette discussion est classée dans : partir, caractere, tableaux, obtenir, correspondance


Répondre à ce message

Sujets en rapport avec ce message

Caractere ASCII x barre (moyenne) [ par Patrik ] Bonjour,Je souhaiterai obtenir le code latin ou ascii pour obtenir le symbole x barre représente l'abréviation de la moyenne.Patrik obtenir le nom d'un dossier [ par Fwdavy ] je voudrais a partir d'une boucle lister les nom des dossiers (ou fichier) a partir d'une adresse specifique. Pour : - supprimer un fichier ou un doss Lancer une procedure à partir d une chaine de caractere [ par farrakis ] Bonjour,J aimerais lancer une procédure partir d'une chaine de caractere, sans avoir à écrire du code du genreIf monTexte="toto" then call totomais pl obtenir une table a partir de 2 tables [ par aztcaLISS ] Salut,Je voudrais savoir comment faire une requete permettant d'obtenir une table contenant toutes les lignes d'une Table1 et toutes les lignes d'une Peut-on obtenir un code à partir d'un exe sans avoir VB6 ? [ par nono78220 ] Bonjour,Il est possible de faire des exe avec des logiciels tels que "inno_setup"Question: si notre code est compilé avec un tel logiciel, y-a t'il un Obtenir un Type à partir d'un String [ par The Meteorologist ] Bonjour, je cherche une méthode permettant d'obtenir un type à partir d'un String contenant son nom et ses namespaces. Par exemple : Dim nomDuType Convertir byte() en caractere ASCII [ par Grinvald ] Bonjour,Je souhaiterai convertir un tableaux de byte en caractère ASCII.Le tableaux est le résultat d'un hachage.Merci de votre aide. Peut'on obtenir un object à partir d'un hwnd ? [ par vicosta ] Bonjour,Peut'on obtenir un object à partir d'un hwnd  d'une façon quelquonque comme celle-ci ?D'abord, créer un object, dans ce cas, le calendrier:Dim Problème d'ouverture de fichiers à partir de mon VBA [ par mike56edwards ] Bonjour à tous,Je travaille sur un projet pour mes études. Sur certains de mes userform, j'ai des commandbutton qui permettent d'ouvrir un dossier dan


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales