Les Snippets

Connexion

Tester si un (ou plusieurs) mot peut être composé à partir d'un jeu de lettres donné

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 23/06/2008 09:47:00 et initié par Renfield [Liste]
Date de mise à jour : 24/06/2008 14:36:23
Vue : 698
Catégorie(s) : Chaîne de caractères, Regex
Langages dispo pour ce code :
- VB6, VBA



Langage : VB6 , VBA
Date ajout : 23/06/2008
Posté par Renfield [Liste]
DateMAJ : 24/06/2008

Option Explicit
    
Private Type SafeArray1
   cDims As Integer
   fFeatures As Integer
   cbElements As Long
   cLocks As Long
   pvData As Long
   cElements As Long
   lLbound As Long
End Type
    
Private Const FADF_AUTO = &H1
Private Const FADF_STATIC = &H2
Private Const FADF_FIXEDSIZE = &H10
    
Private Declare Function ArrPtr Lib "msvbvm60.dll" Alias "VarPtr" (Ptr() As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
     
Private Function IsWordCoumpoundOf(ByRef vsWord As String, ByRef vsLetters As String, Optional ByVal vbCanReuseLetters As Boolean = False) As Boolean
Dim xbCount(128) As Integer
Dim xbBuffer() As Byte
Dim tArray As SafeArray1
Dim i As Long
   With tArray
       .cDims = 1
       .cbElements = 1
       .fFeatures = FADF_AUTO Or FADF_STATIC Or FADF_FIXEDSIZE
       CopyMemory ByVal ArrPtr(xbBuffer), VarPtr(tArray), 4

       .cElements = LenB(vsWord)
       .pvData = StrPtr(vsWord)
       For i = 0 To .cElements - 1 Step 2
           If vbCanReuseLetters Then
               xbCount(xbBuffer(i)) = -1
           Else
               xbCount(xbBuffer(i)) = xbCount(xbBuffer(i)) - 1
           End If
       Next i
          
       .cElements = LenB(vsLetters)
       .pvData = StrPtr(vsLetters)
       For i = 0 To .cElements - 1 Step 2
           If vbCanReuseLetters Then
               xbCount(xbBuffer(i)) = 0
           Else
               xbCount(xbBuffer(i)) = xbCount(xbBuffer(i)) + 1
           End If
       Next i
       CopyMemory ByVal ArrPtr(xbBuffer), 0&, 4
   End With
      
   IsWordCoumpoundOf = True
   For i = 0 To UBound(xbCount)
       If xbCount(i) < 0 Then
           IsWordCoumpoundOf = False
           Exit For
       End If
   Next i
End Function 
Remarque :
MsgBox IsWordCoumpoundOf("HERITIERE", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", True)
MsgBox IsWordCoumpoundOf("HERITIERE", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ")
MsgBox IsWordCoumpoundOf("HERITIERE", "ANORRENHEUTQDEIIS")

Snippets en rapport avec : Mots, Composer, Ensemble, Tester, Lettres



Codes sources en rapport avec : Mots, Composer, Ensemble, Tester, Lettres

{Delphi} CONVERTION DE CHIFFRES EN LETTRES
ce n'est pas une grande application ..bien sure !, mais un petit exemple particulier qui peut etre u...

{C / C++ / C++.NET} LES ENSEMBLE C++
ptite source realisé lors d'un tp en class ,permet une mini gestion des ensemble en C++, operatio...

{Delphi} LE MOT LE PLUS LONG : ANAGRAMME
Il s’agit d’une version du jeu de même nom. Le jeu consiste à former un mot, à partir d’un nombre...

{Javascript / DHTML} OUVRIR ET TESTER PAGES WEB V2
Ce code permet d'ouvrir plusieurs pages en variant des parametres (chiffres, lettres) dans le lien i...

{C# / C#.NET} STROMPEDIA : ANALYSER LE SENS DES MOTS (C#/MYSQL/PHP)
LES DES MOTS, DES CONCEPTES A PARTIR DES DONNES DU WEB : Strompedia est un outil d'analyse de donné...

{PHP} FILTRE À GROS MOTS POUR LIVRE D'OR
J'ai 54 ans et c'est mon premier post, j'en tremble encore... C'est une fonction toute bête qui fil...

{Visual Basic, VB6, VB.NET, VB 2005} JEU MAUTHUS !
Tirée du célèbre jeu de france 2, cette application est dédiée aux joueurs en herbe. Vous serez acco...

{Visual Basic, VB6, VB.NET, VB 2005} TESTER VOTRE ÉCRAN DE POCKET PC (COMPACT FRAMEWORK)
Ce logiciel sert à tester s'il n'y a pas de pixel mort sur votre pda....

{Visual Basic, VB6, VB.NET, VB 2005} VÉRIFIER LA CONFORMITÉ D'UNE ADRESSE EMAIL
But : Vérifier qu'une adresse mail concorde avec les règles Chaque caractère de la partie à gauche ...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERTIR UN NOMBRE ECRIT EN LETTRES VERS LES CHIFFRES ET VICE VERSA
Ce code permet de convertir un nombre écrit en toute lettres en chiffres. Il est reversible c'est à ...