Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comparaison avec une liste

3 réponses
Avatar
Nicolas
Bonjour,

Je souhaiterais faire la comparaison d'une chaine de=20
caract=E8re avec une liste de chaines de caract=E8res.

Exemple : prenons la chaine de caract=E8re

strFichier =3D "c:\essai.txt"

J'aimerais savoir si son extension fait partie de la liste=20
{txt,zip,pdf,bmp,mid,exe,com}

Plutot que de faire If Right(strFichier,3)=3D"txt" or Right
(strFichier,3)=3D"zip" ...

n'y a t'il pas un moyen du genre

If Right(strFichier,3) in {txt,zip,pdf,bmp,mid,exe,com}

Merci d'avance

Nicolas

3 réponses

Avatar
jean-marc
>"Nicolas" wrote in message


news:136e01c3fb90$6c016900$
Bonjour,
Je souhaiterais faire la comparaison d'une chaine de
caractère avec une liste de chaines de caractères.
Exemple : prenons la chaine de caractère
strFichier = "c:essai.txt"
J'aimerais savoir si son extension fait partie de la liste
{txt,zip,pdf,bmp,mid,exe,com}
Plutot que de faire If Right(strFichier,3)="txt" or Right
(strFichier,3)="zip" ...
n'y a t'il pas un moyen du genre
If Right(strFichier,3) in {txt,zip,pdf,bmp,mid,exe,com}



Hello,

il suffit de te faire ta propre fonction "in", comme ça:

Option Explicit
Option Base 1
Private ListeExt(3) As String

Private Function InitListe()
ListeExt(1) = "tar"
ListeExt(2) = "cod"
ListeExt(3) = "arc"
End Function

Private Function IsInList(elem As String, L() As String) As Boolean
Dim i As Integer
For i = LBound(L()) To UBound(L())
If elem = L(i) Then
IsInList = True
Exit For
End If
Next i
End Function

Private Sub Command1_Click()
Dim s As String

InitListe
s = "zip"
If IsInList(s, ListeExt()) Then
MsgBox s & " is in list."
Else
MsgBox s & " is NOT in list."
End If
End Sub

Jean-Marc
Avatar
Nicolas
Ok merci pour ton code, je présume donc qu'il n'y aucun
autre moyen à part passer par une fonction avec une boucle
dedans.

Merci encore !

Nico
Avatar
ng
Salut,

Si avec un code comme ça :

Private Sub Form_Load()
If EstDansLaListe("zip", "txt;zip;pdf;bmp;mid;exe;com") Then
'ok
Else
'pas ok
End If
End Sub

Public Function EstDansLaListe(sElt As String, sListe As String) As Boolean
EstDansLaListe = (InStr(1, ";" & sListe & ";", ";" & sElt & ";",
vbTextCompare) <> 0)
End Function



--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
"Nicolas" a écrit dans le message de news:
15c301c3fbb1$ee4665c0$
Ok merci pour ton code, je présume donc qu'il n'y aucun
autre moyen à part passer par une fonction avec une boucle
dedans.

Merci encore !

Nico