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 : 1259
Catégorie(s) : Chaîne de caractères, Regex
Langage sélectionné : VBA
Langages dispo pour ce code :
- VB6, VBA
- Voir tous les langages pour ce code snippet



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...

{Visual Basic, VB6, VB.NET, VB 2005} TRADUIRE DES GROS CHIFFRES EN LETTRES AVEC CORRECTION ORTOGRAPHIQUE
Encore une version, mais celle-ci accepte des valeures jusqu'aux quadrillions et la correction orto...

{Visual Basic, VB6, VB.NET, VB 2005} TESTER LE NIVEAU DE SÉCURITÉ D'UN MOT DE PASSE
Bonjour à toutes et tous, Présentation : Dans une partie de mon TFE, lorsqu'un utilisateur cré...

{Delphi} UN RAMI AVEC DES LETTRES
nspiré par un jeu de table (sans plateau), ce jeu, qui se joue soit en solitaire soit contre l'ordin...

{Flash} - STARWORDS -
StarWords est un jeu de réflexion dont le but est de trouver des mots français rapidement dans la gr...

{Flash} STAR-DECODER : TROUVEZ LE CODE !
Jeu de réflexion pur... Trouvez une séquence de lettres (A->Z) d'une longueur variant selon le ni...

{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é...