IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

vb6+calcul nbre occurence


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 26
    Points
    26
    Par défaut vb6+calcul nbre occurence
    Salut,
    Pourriez vous me dire comment je peux calculer le nombre d'occurence d'un mot par exemple "test" qui existe dans un fichier file.txt
    Merci.

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    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
    Private Sub Command1_Click()
    Dim Tampon As String, Position As Integer, NbOccur As Integer
     
        Open "d:\svg\liste.txt" For Binary As #1
        Tampon = Space$(LOF(1))
        Get #1, , Tampon
        Close #1
        Position = InStr(1, Tampon, "test", vbTextCompare)
        Do While Position > 0
            NbOccur = NbOccur + 1
            Position = InStr(Position + 11, Tampon, "test", vbTextCompare)
        Loop
        MsgBox NbOccur
     
    End Sub

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Février 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Février 2003
    Messages : 95
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par bidou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    Position = InStr(Position + 11, Tampon, "test", vbTextCompare)
    ...
    Bidou, pourquoi + 11 ? C'est pas plutôt + 4 (ou plus exactement la longueur de la chaîne recherchée) ?

    Mathieu D.
    Un verre vide se plaint, un verre plein se vide ...

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    non, c'est plus 1 avec mon parkinson

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 77
    Points
    77
    Par défaut
    j'aimerai bien savoir est ce que +4 ou bien +11 ? et prq ?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Je viens d'essayer ça, c'est marrant comme méthode !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      Dim Tableau()                     As String
     
      Tableau = Split("Salut, Pourriez test vous me dire comment je peux calculer le nombre" & _
                      "d'occurence d'un mot par exemple test qui existe dans un fichier file.txt. Merci", _
                      "test")
     
      Debug.Print "Nombre d'occurence : " & UBound(Tableau)
    Plus court, cela devient difficle...
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  7. #7
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    c'est + 1 ou +4 comme tu veux

    Plus court, cela devient difficle...
    Plus lent aussi d'ailleurs, parce que Split pour faire du décompte...

  8. #8
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Citation Envoyé par bidou
    Plus lent aussi d'ailleurs, parce que Split pour faire du décompte...
    J'ai dis que je trouvai ça marrant, pas performant !

    C'est a voir, mais je n'ai pas fais l'essai.
    Mais je suppose que Split n'est pas écrite en VB et je ne serai pas surpris qu'elle soit plus rapide que le code vb suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Position = InStr(1, Tampon, "test", vbTextCompare)
        Do While Position > 0
            NbOccur = NbOccur + 1
            Position = InStr(Position + 1, Tampon, "test", vbTextCompare)
        Loop
    Maintenant je suis d'accord avec toi, c'est une fois très détournée d'utiliser la fonction Split.
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  9. #9
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Plus vite il n' y a pas beaucoup de chance, Instr n'est pas écrite en VB non plus
    La vitesse sera quasiment égale s'il y a peu d'occurence et nettement moins bonne pour split s'il y en a beaucoup.

  10. #10
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    A coder, on peut encore faire plus rapide : en une ligne sans variable intermédiaire. !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MgsBox Ubound(Split(Tampon,"test"))
    Allez, Bidou, fait moi plaisir et dis-moi que c'est tout de même pratique

    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
    Private Sub Command1_Click()
    Dim Tampon As String ', Position As Integer, NbOccur As Integer
     
        Open "d:\svg\liste.txt" For Binary As #1
        Tampon = Space$(LOF(1))
        Get #1, , Tampon
        Close #1
        'Position = InStr(1, Tampon, "test", vbTextCompare)
        'Do While Position > 0
        '    NbOccur = NbOccur + 1
        '    Position = InStr(Position + 11, Tampon, "test", vbTextCompare)
        'Loop
        'MsgBox NbOccur
     
        MgsBox ubound(Split(Tampon,"test"))
    End Sub
    Au moins spootnic22 tu as le choix !
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  11. #11
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Citation Envoyé par Najdar
    Allez, Bidou, fait moi plaisir et dis-moi que c'est tout de même pratique
    Disons que c'est plus court à coder, je te l'accorde bien volontiers

  12. #12
    Membre averti
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Points : 446
    Points
    446
    Par défaut
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/05/2006, 23h14
  2. [VB6] Calcul de la vitesse d'upload
    Par Muldeo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/03/2006, 21h37
  3. [VB6]calcul et affichage d'une pente
    Par fahmichebaane dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 07/03/2006, 16h34
  4. Calcul d'occurence
    Par joxbl dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/11/2005, 07h31
  5. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo