begin process at 2012 02 13 00:34:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > RÉCUPÉRER UNE VALEUR NUMÉRIQUE MAXIMALE DANS UNE CHAINE DE CARACTÈRES

RÉCUPÉRER UNE VALEUR NUMÉRIQUE MAXIMALE DANS UNE CHAINE DE CARACTÈRES


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :01/03/2004 Vu :3 738

Auteur : NoFutur

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Ce bout de code permet de récupèrer la valeur numérique maximale contenu dans une chaine de caractères.

Je m'explique :

Votre chaine de caractère se compose de la façon suivante :
"20,12,1,5,2560,12356,100,202,25,74"

Cette fonction va donc comparer chaque valeur numérique dans la chaine pour en déterminer la plus grande.

Le séparateur peut être soit une virgule, un point-virgule voir même un espace. Tout le code se situe dans une fonction donc facilement exploitable à partir de n'importe quel projet.

Source

  • Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Integer
  • Dim Recup As String
  • Dim Partiel As String
  • ' Ajoute à la chaine un séparateur de plus
  • Chaine = Chaine & Separateur
  • ' Compte le nbr de caractère
  • For i = 1 To Len(Chaine)
  • ' Si i trouve le séparateur ou arrive à la fin
  • If Mid$(Chaine, i, 1) = Separateur Or i = Len(Chaine) Then
  • ' Si Recup < Partiel alors Recup = Partiel
  • If Val(Recup) < Val(Partiel) Then Recup = Partiel
  • Partiel = ""
  • Else
  • ' Incrémente la variable de comparaison
  • Partiel = Partiel + Mid$(Chaine, i, 1)
  • End If
  • Next i
  • ' Récupère la valeur maxi
  • Valeur_Maxi = CInt(Recup)
  • End Function
Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Integer

Dim Recup As String
Dim Partiel As String

' Ajoute à la chaine un séparateur de plus
Chaine = Chaine & Separateur

' Compte le nbr de caractère
For i = 1 To Len(Chaine)
    
    ' Si i trouve le séparateur ou arrive à la fin
    If Mid$(Chaine, i, 1) = Separateur Or i = Len(Chaine) Then
        
        ' Si Recup < Partiel alors Recup = Partiel
        If Val(Recup) < Val(Partiel) Then Recup = Partiel
        Partiel = ""
        
    Else
    
        ' Incrémente la variable de comparaison
        Partiel = Partiel + Mid$(Chaine, i, 1)
        
    End If

Next i

' Récupère la valeur maxi
Valeur_Maxi = CInt(Recup)

End Function

 Conclusion

Pour le tester c'est très simple:
-----------------------------------

1. Commencer un nouveau projet

2. Ajouter un contrôle texte et un bouton de commande

3. Ajouter "20,12,1,5,2560,12356,100,202,25,74" dans le contrôle texte

4. Utilisez le code MsgBox Valeur_Maxi(Text1.text, ",") dans le bouton de commande

Have Fun ^_^


 Sources du même auteur

Source avec Zip Source avec une capture VÉRIFIER LA NOUVELLE VERSION D'UNE APPLICATION VB À PARTIR D...
EXPORTER LE CONTENU D'UNE LISTVIEW DANS UN FICHIER EXCEL (SA...
Source avec Zip Source avec une capture CONVERTION PAR LOT ICO --> BMP
Source avec Zip Source avec une capture ACTIVEX TOOLBAR STYLE OFFICE XP
Source avec Zip Source avec une capture UN MENU AU LOOK WINDOWS XP (OCX)

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

Commentaires et avis

Commentaire de rene38 le 01/03/2004 19:35:19

Ou bien en utilisant la fonction SPLIT :
Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Integer
Dim tabl() As String, i As Integer
tabl = Split(Chaine, Separateur)
Valeur_Maxi = Val(tabl(0))
For i = 1 To UBound(tabl)
If Val(tabl(i)) &gt; Valeur_Maxi Then Valeur_Maxi = Val(tabl(i))
Next i
End Function

Commentaire de NoFutur le 01/03/2004 20:19:09

Eh bien si j'avais VB6 j'aurai pu utilisé cette fonction mais comme je l'ai pô j'ai du faire avec les moyens du bord lol

Mais maintenant ça y est j'ai compris à quoi y sert Split dans VB6 !
On dira que c'est le Split du VB5 pour faire original :o)

@plus ;-)

Commentaire de Sinsitrus le 14/12/2006 16:58:44

Salut !
Je n'ai pas bien compris comment proceder... vous pouvez mieux m'expliquer svp !

Commentaire de yiab le 10/10/2008 22:43:50 7/10

bonjour,
tout d'abord merci pour ton code qui m'a été très utile

je suis  débutant  en vb6, et j'essaye malgré tout de développer de quoi manipuler du Gcode
je suis donc tombé sur ton code qui fonctionne tres bien avec les entier les "Long" et les nombres a virgules
mais qui ne voulait rien savoir quand il s'agit de chiffres  tels que "0,1 ou 0,xx"

donc j'ai tatonné, et j'ai fini par avoir l'idée de remplacer :
Valeur_Maxi = Cint(Recup) (ou plutôt Csng(Recup) en ce qui me concerne)
par :
Valeur_Maxi = Val(Recup)

et la ça marche nickel ! pour ceux que ça interesse

Public Function Valeur_Maxi(Chaine As String, Separateur As String) As Single
Dim Recup As String
Dim Partiel As String
' Compte le nbr de caractère
For i = 1 To Len(Chaine)
    'Incrémente la variable de comparaison
    Partiel = Partiel + Mid$(Chaine, i, 1)
    'Si i trouve le séparateur ou arrive à la fin
    If Mid$(Chaine, i, 1) = Separateur Or i = Len(Chaine) Then
        ' Si Recup < Partiel alors Recup = Partiel
        If Val(Recup) < Val(Partiel) Then Recup = Partiel
        Partiel = ""
    End If
Next i
' Récupère la valeur maxi
Valeur_Maxi = Val(Recup)
End Function

Private Sub Command1_Click()
'le text2 renvoie la valeur recup située apres le X
Text2.Text = Valeur_Maxi(Text1.Text, "X")
'le text3 renvoie la valeur recup située apres le Z
Text3.Text = Valeur_Maxi(Text1.Text, "-")
end sub
voilà une Form, 3 textbox
vous coller ça (un bout de Gcode) dans le Text1

G01 Y0 Z-0.445
G01 X0.2 Z-0.383
G01 X0.4 Z-0.383
G01 X0.6 Z-0.445
G01 X0.8 Z-0.383
G01 X1 Z-0.383
G01 X1.2 Z-0.383
G01 X1.4 Z-0.32
G01 X1.6 Z-0.383
G01 X1.8 Z-0.383
G01 X2 Z-0.383
G01 X2.2 Z-0.32
G01 X2.4 Z-0.383
G01 X2.6 Z-0.32
G01 X2.8 Z-0.32
G01 X3 Z-0.445
G01 X3.2 Z-0.383
G01 X3.4 Z-0.445
G01 X3.6 Z-0.32
G01 X3.8 Z-0.383
G01 X4 Z-0.383
G01 X4.2 Z-0.32
G01 X4.4 Z-0.32
G01 X4.6 Z-0.383
G01 X4.8 Z-0.383
G01 X5 Z-0.383
G01 X5.2 Z-0.383
G01 X5.4 Z-0.383
G01 X5.6 Z-0.32
G01 X5.8 Z-0.445
G01 X6 Z-0.445
G01 X6.2 Z-0.445
G01 X6.4 Z-0.32
G01 X6.6 Z-0.32
G01 X6.8 Z-0.445

voilà et merci nofutur pour ton code qui m'a permis de mieux appréhender
cette chose mystérieuse qu'est le VB6

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,920 sec (3)

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