Bonjour!
Existe-t-il en Visual Basic des fonctions plus ou moins simples permettant de comparer deux chaînes de textes selon l'ordre alphabétique, ou des fonctions de ce type?
Merci beaucoup pour votre réponse.
Ghislain
Bonjour!
Existe-t-il en Visual Basic des fonctions plus ou moins simples permettant de comparer deux chaînes de textes selon l'ordre alphabétique, ou des fonctions de ce type?
Merci beaucoup pour votre réponse.
Ghislain
Trie suivant la première lettre de la chaine ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Select case Asc(Chaine1$) Case <Asc(Chaine2$) .... 'gestion cas avant Case Asc(Chaine2$) .... 'gestion même lettre Case >Asc(Chaine2$) .... 'gestion cas après end select
C'est donc un algo de tri que tu veux ?
Vb n'a pas çà dans sa besace, il faut le programmer complétement.
Mais on peut utiliser une ListBox avec sa propriéte sort
Je vais donner l'exemple qui m'intéresse pour répondre à ThierryAIM.
Cela pourrait être une variante de la fonction que je recherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 dim chaine1$ dim chaine2$ fct(chaine1$,chaine2$)= 0 si chaine1$ est un mot placé avant chaine2$ dans le dictionnaire, = 1 si il est placé après
Une alternative est le comparateur "<", qui dans certains langages, je pense, s'applique aussi aux lettres et pas seulement aux nombres. Est-ce le cas en VB? Cela permettrait de fabriquer un petit algorithme de tri alphabétique.
Sinon, j'imagine que je peux en créer un en fabriquant des variables ayant des valeurs de 1 à 26, que j'appelle pour chaque lettre, mais ce serait une petite prise de tête.
Sinon je vais regarder comment fonctionne la fonction 'sort' de la Listbox.
Est-ce que Daudet78 peut m'indiquer plus précisément comment fonctionnent les fonctions "<asc()", "asc()" et "asc()"?
Asc(Texte1$) te retourne la valeur ASCII du 1er caractère de ta chaineretourne 41 en Hexa
Code : Sélectionner tout - Visualiser dans une fenêtre à part I%=Asc("Amen")
Bonjour,
'voici un algo appelé :tri à bulle et qui existe depuis la nuit des temps
'qui n'est pas des plus performants mais qui est simple à employer
'pour les puristes excuser les GOTO (que je n'aime pas)... mais ça fonctionne sans problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 EC = Nombreelementsàtrier B1: EC = Int(EC / 2) If EC < 1 Then GoTo Sortie J = 1: K = IC - EC B2: I5 = J B3: M = I5 + EC If A$(I5) <= A$(M) Then GoTo B4 'tableau d'éléments à comparer inter = A$(I5): A$(I5) = A$(M): A$(M) = inter 'remplacer les éléments du tableau I5 = I5 - EC If I5 >= 1 Then GoTo B3 B4: J = J + 1 If J > K Then GoTo B1 GoTo B2 Sortie: ....
Bonsoir,
Oui, en plus çà marche sans problème. Bon ci-dessous une fonction simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Function FCT(Chaine1 As String, Chaine2 As String) As Integer If Trim(Chaine1) > Trim(Chaine2) Then FCT = 1 Else FCT = 0 End Function
Partager