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 :

Sélection de certains mots dans un .txt


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut Sélection de certains mots dans un .txt
    Salutations.

    J'essai de créer quelques choses en rapport avec une base de donnée ACCESS. Avant de commencer, la base de donnée s'appelle "Exemple.mdb"

    Dans un TextBox, nommé par exemple "txtLettre", je demande à l'utilisateur d'écrire une lettre selon des bases. Les voici:

    Bonjour, je m'apelle "tonNom", j'ai "tonAge" ans. Je vais "tonHumeur".
    Exemple concrèt:
    Bonjour, je m'apelle Dorhken, j'ai 99 ans. Je vais bien.
    Je veux sélectionner "tonNom", "tonAge" et "tonHumeur" et puis les classer dans une base de donnée (Exemple.mdb).

    Si chacun (tonNom, tonage, tonHumeur) auraient un TextBox à eux-mêmes, ce serait facile. Ça pourrait donner ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Command1_Click()
    With Principale.Data1.Recordset
    .AddNew
    !Nom = tonNom.Text
    !Age = tonAge.Text
    !Humeur = tonHumeur.Text
    .Update
    Ajout.Hide
    End With
    End Sub
    Cependant dans ce cas, la phrase complète ce retrouve dans un seul textBox.

    Autre point, la bonne phrase c'est
    "Bonjour, je m'apelle Dorhken, j'ai 99 ans. Je vais bien."
    Si l'utilisateur écrit
    "Bonjour, mon nom c'est Dorhken, j'ai presque 99 ans. Je vais bien."
    Bah ça ne marchera pas, je crois donc que ça résous la difficulter du probleme. (Probleme ? Je ne crois pas, c'est un quasi-tutoriel que je demande, mais après mes recherches; aucun résultat)


    Merci, j'espère avoir été clair.

  2. #2
    Membre régulier Avatar de AurelieB
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 91
    Points : 100
    Points
    100
    Par défaut Fonction InStr()
    Bonjour,
    tu devrais pouvoir coder ce que tu desires avec les fonctions de manipulation de string.
    Par exemple InStr(txt1, txt2) sert a rechercher la premiere occurence d'un string dans un autre, ensuite tu decoupes l'age le nom etc...
    Avec quelques tu vas vite en venir a bout de ce probleme... des que tu as un debut de code mets le sur le forum qu'on puisse l'admirer.

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Rigoureusement impossible (puisque la rédaction est "libre") sans :
    - soit l'insertion de séparateurs identifiables
    - soit l'utilisation de champs de saisie (appelables ou non depuis un événement de la textbox de "rédaction du message")

    Bonne continuation

    EDIT : je précise que ceux qui constituent des bases de données (souvent "dans l'ombre") à partir de textes le font à l'aide d'un logiciel (et d'un dictionnaire triangulaire) qu'une armée d'intervenants éduquent peu à peu sur les idiomatismes. Une moulinette intervient ensuite, puis une seconde "armée" vient "épouiller" les résultats obtenus.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par AurelieB
    Bonjour,
    tu devrais pouvoir coder ce que tu desires avec les fonctions de manipulation de string.
    Par exemple InStr(txt1, txt2) sert a rechercher la premiere occurence d'un string dans un autre, ensuite tu decoupes l'age le nom etc...
    Oui et c'est la que réside le probleme. Si le nom possède toujours le même nombre de caractère, nous pourions facilement faire un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Load()
    Textbox.Text = Mid("Bonjour, je m'apelle Dorhken", 22, 7)
    'Ça renvoie donc "Dorhken"
    End Sub
    Mais si le nom, au lieu de Dorhken, c'est
    "Abougrahidjamanji"
    . La réponse renvoyé est
    "Abougra"
    . De plus, je ne pourrais pas mettre, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mid("Bonjour, je m'apelle Dorhken", 22, 27)
    Puisque ça sélectionnerais le reste de ma phrase.

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    L'exemple donné ici est bien facile à résoudre ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Command2_Click()
       la_phrase = "Bonjour, je m'appelle Dorhken"
       MsgBox Trim(Mid(la_phrase, InStr(la_phrase, "m'appelle ") + Len("m'appelle ")))
    End Sub
    Mais cela ne résoudra en rien le reste, puisqu'il a été précisé plus haut que l'utilisateur riquerait de formuler autrement ...

    Citation :

    "Bonjour, mon nom c'est Dorhken, j'ai presque 99 ans. Je vais bien."
    Et le problème demeure donc entier !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ucfoutu
    Mais cela ne résoudra en rien le reste, puisqu'il a été précisé plus haut que l'utilisateur riquerait de formuler autrement ...
    Ça je m'en contre-fiche. Il n'aura qu'une seule manière de formuler. S'il ne formule pas correctement, tant pis pour lui !

    EDIT: Qu'elle manière permet de renvoyer les chiffres/lettres entre 2 caractère ?

    Par-exemple: Programme, donne moi tout les chiffres et nombres qu'il y a entre le caractère 27 et le caractère 41.

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Un minimum de connaissances et de réflexion me paraît là fort souhaitable.
    3 indications, donc, et elles devraient largement suffire :
    1) Mid(texte,position,1) retourne un seul caractère, commençant à la position position.
    2) Isnumeric(variable) retourne True (vrai) si la chaîne de caractères variable peut être traduite en un numérique
    3) une simple boucle sur la variable position, de 27 à 41 (dans ton cas) te permet d'extraire chaque caractère, un par un (et donc d'aller ensuite vérifier sa qualité de numérique ou non)
    Bonne réflexion...

  8. #8
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 089
    Points : 16 652
    Points
    16 652
    Par défaut
    Citation Envoyé par Dorhken
    Ça je m'en contre-fiche. Il n'aura qu'une seule manière de formuler. S'il ne formule pas correctement, tant pis pour lui !
    L'utilisateur risque de te repondre !Humeur =
    Un bon programme et un programme qui est facile d'utiliser, peu de risque d'erreur (en tout cas bien géré), des indications d'utilisation claires, sont souvent plus importantes que le décor.
    Inutile de lui donner une ROOLS si tu ne lui dis pas clairement ou ce trouve les clefs.
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ProgElecT
    L'utilisateur risque de te repondre !Humeur =
    Un bon programme et un programme qui est facile d'utiliser, peu de risque d'erreur (en tout cas bien géré), des indications d'utilisation claires, sont souvent plus importantes que le décor.
    Inutile de lui donner une ROOLS si tu ne lui dis pas clairement ou ce trouve les clefs.
    Bon, je vais donc vous expliquer mon idée CLAIRE a propos de mes intentions. Ceci est est pour un jeu non-mobile de gestion sur internet. (J'en ai PROBABLEMENT déjà parlé). L'utilisateur a une page militaire, ou tout ses unités d'attaques sont affichés. Un exemple:

    Type d'armée Village(D)
    Espionne Elfe Noire 0
    Araignée Géante 205
    Arbalétrier Elfe Noir 0
    Baliste des Trois Lunes 0
    Enchanteresse d'Asphraenna 0
    Assassin d'Oblivion 452
    Chacun possède une feuille du genre, sauf que les noms sont différents et les chiffres aussi. L'utilisateur utilise COPIER-COLLER afin d'inscrire ses informations-là dans mon textbox. Par la suite, lorsqu'il cliquera sur un bouton, les éléments du tableaux et les chiffres seront entrés dans une base de donnée Access. Par la suite, il y aura un calcule simple. Par exemple, une espionne elfe noire fournit 50 points. J'aurai donc à faire le chiffre multiplié par le nombre de points.

    Donc en gros, c'est le concept qui m'intéresse et qu'un utilisateur qui ne fait pas se qui est écrit (Copier-coller) ne recevra en RIEN les informations voulues.

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Les idées ne sont alors pas du tout claires, tout au moins dans le "mécanisme" souhaité de la recherche (dans un intervalle compris entre deux positions/rangs de caractères alors qu'il s'agit manifestement d'autre chose que de chercher entre le rang x et le rang y - où x et y sont des nombres selon ta demande faite plus haut - d'une chaine).

    Copie à revoir, donc (ou alors stratégie à réexprimer plus clairement et sans tous ces détours inutiles). Le développement commence par cette netteté dans la réflexion et dans l'expression.

    Bonne réflexion, donc.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par ucfoutu
    Les idées ne sont alors pas du tout claires, tout au moins dans le "mécanisme" souhaité de la recherche (dans un intervalle compris entre deux positions/rangs de caractères alors qu'il s'agit manifestement d'autre chose que de chercher entre le rang x et le rang y - où x et y sont des nombres selon ta demande faite plus haut - d'une chaine).

    Copie à revoir, donc (ou alors stratégie à réexprimer plus clairement et sans tous ces détours inutiles). Le développement commence par cette netteté dans la réflexion et dans l'expression.

    Bonne réflexion, donc.
    Que ne comprends-tu pas ? Résumé:
    Espionne Elfe Noire 0
    Araignée Géante 205
    Arbalétrier Elfe Noir 0
    Baliste des Trois Lunes 0
    Enchanteresse d'Asphraenna 0
    Assassin d'Oblivion 452
    Je copie-coller ceci. Je clique sur un bouton et chaque ligne entrée, le groupe de mots va avec son nombre de droite. (Espionne Elfe Noir et 0, par exemple)

    Je fouille depuis quelques heures la MSDN à la recherche de quelques informations qui pourraient m'être utiles. Ucfoutu, je vais être franc, je ne suis pas un expert en la matière, j'apprend à mon rhytme et des trucs du genre
    Un minimum de connaissances et de réflexion me paraît là fort souhaitable.
    3 indications, donc, et elles devraient largement suffire :
    1) Mid(texte,position,1) retourne un seul caractère, commençant à la position position.
    2) Isnumeric(variable) retourne True (vrai) si la chaîne de caractères variable peut être traduite en un numérique
    3) une simple boucle sur la variable position, de 27 à 41 (dans ton cas) te permet d'extraire chaque caractère, un par un (et donc d'aller ensuite vérifier sa qualité de numérique ou non)
    Bonne réflexion...
    Ça me laisse une piste, peut-être, mais ça ne m'aidera pas. Je ne demande pas que tu le fasse pour moi, mais une exemple a toujours été plus efficace, surtout lié à une explication. Vous allez me dire: "Tutoriel, FAQ, Code Source", j'ai cherché et je cherche encore.

    À ceux qui sont partants de répondre, faites-le. Aux autres, ce n'est pas grave, je me débrouillerai.

  12. #12
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Si (je dis bien si car on ne sait plus, maintenant, ce qu'il en est exactement) tes nombres sont toujours à la fin de la chaîne, il te suffit d'utiliser les fonctions InstrRev (par rapport à l'espace) et Val.
    La fonction InstrRev est précisément accompagnée d'exemples d'utilisation dans la MSDN, ainsi que la fonction Val. Tu les y trouveras donc, ces exemples.

  13. #13
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 089
    Points : 16 652
    Points
    16 652
    Par défaut
    Ces précisions été bien nécessaires.
    J’ai recherché cette après-midi une solution possible à l’aide d’un projet perso sur un dictionnaire pour scrabble.
    Il utilise une liste de mots d’un dico de 4 .323 Mo et l’application Word pour les synonymes et antonymes.
    Il y a tellement de façons d’exprimer ces 3 informations, que je pense que l’analyse syntactique s’avère incontournable.
    J’y ai passé 3 heures sans beaucoup de succès, mais avec plaisir.
    Une aide peut être par le forum Algorithmes, car il faut trouver des gens qui soient programmeurs mais aussi habituer aux formules statistiques, ce qui n’est assurément pas mon cas.
    En tout cas, bonne continuation.
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cmdboutton_click()
    Dim phrase2 As String
    phrase2 = Textbox2.Text
    textbox3.Text = Mid(phrase2, InStr(phrase2, "  ") + Len("  "))
    End Sub
    De ce que je voulais en faire, ça fonctionne. J'ai remarqué qu'avec mon copier-coller (via le jeu), il y avait deux espace après le nom de l'unité (Espionne elfe noire//90)

    Maintenant il ne me reste qu'à coder la systeme pour qu'il prenne le nom de l'unité au complèt. Il faudrait que je puisse découper le nom, je suis encore en train de chercher ça, si quelqu'un de vous a une idée...

    Merci.

  15. #15
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    S'il est tenu pour certain que le double espace est le séparateur, on pourrait utiliser la fonction split

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Tble as variant
    Tble=Split(text,"  ")
    'le texte est dans tble(0) et le nombre dans tble(1)
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  16. #16
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ca parait tellement peu standard le double espace comme séparateur que je me demande si ce sera bien le cas à chaque fois.
    Personnellement, je remplacerai tous les "mutli" espaces par un seul (par une boucle qui remplace tous les doubles espaces par un seul jusqu'à ce qu'il n'y ait plus de double espace, par exemple) et ensuite comme le dit Delbeke, un coup de Split et on en parle plus.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  17. #17
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Pour resoudre le problème du double espace pas besoin de boucle.
    Il suffit de faire un split sur l'espace et automatiquement le chiffre se retrouve à la fin du tableau de string retourne (si c bien un tableau de string qui est retourne par split, je confond peut etre avec c#).
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  18. #18
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Salut, je ne sais pas si ce que je vais te proposer va te convenir mais sait-on jamais.
    Si j'ai bien compris :
    Ta phrase à un format que l'utilisateur ne doit pas changer sous peine de non fonctionnement.

    Sur ce principe, les parties fixes de ta phrase peuvent être utilisés comme "séparateurs" des données qui t'interessent. Mais ces séparateurs sont différents (dificile d'utiliser Split).
    La première manipulation serait de remplacer ses séparateurs différents par un séparateur unique et simple (le "|" par exemple car peu de nom, age ou humeur peuvent contenir ce caractère ) puis de faire un Split. Si le tableau de sortit n'a pas la bonne dimension, alors un séparateur est manquant et la phrase à été modifié et ne correspond plus au format.
    Voici le résultat en code :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub Form_Load()
    'Bonjour, je m'apelle Dorhken, j'ai 99 ans. Je vais bien.
    Dim Phrase As String
    Dim Donnees() As String
     
    Phrase = "Bonjour, je m'apelle Dorhken, j'ai 99 ans. Je vais bien."
     
    'remplace les parties fixent de la phrase par un séparateur unique
    Phrase = Replace(Phrase, "Bonjour, je m'apelle ", "|")
    Phrase = Replace(Phrase, ", j'ai ", "|")
    Phrase = Replace(Phrase, " ans. Je vais ", "|")
    Phrase = Replace(Phrase, ".", "|")
     
    'découpe la phrase
    Donnees = Split(Phrase, "|")
     
    'affiche le résultat
     
    'Si chaque partie fixe de la phrase à été trouvée, on a alors
    '5 parties dans la phrase (3 qui sont les données et 2 vides de chaque coté)
    If UBound(Donnees) = 4 Then
        MsgBox Donnees(1)
        MsgBox Donnees(2)
        MsgBox Donnees(3)
    Else
        MsgBox "Phrase modifiée"
    End If
     
    End Sub
    J'éspère que cela te convient
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Bonjour ! Désolé de ne pas avoir donné de nouvelles sur le probleme, j'ai du quitter en vacance.

    Premièrement, voici le code, avigeilpro il te rapellera quelque chose. J'ai changé la phrase, bien sûr !

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub Form_Load()
    Dim Phrase As String
    Dim Donnees() As String
     
    Phrase = "Les troupes de Evenger, composées de 1150 Titan de Granits, 20260 Chasseur de Monstress, sont présentement en train de défendre le royaume. Elles y resteront pour encore 71 heure(s)"
     
     
    Phrase = Replace(Phrase, "Les troupes de ", "|")
    Phrase = Replace(Phrase, ", composées de ", "|") 'Ici je veux sélectionner que le chiffre
    Phrase = Replace(Phrase, " ", "|") 'Ici je met l'espace entre 0 et T (C'est ici que ça dégringole)
    Phrase = Replace(Phrase, ", ", "|")
    Phrase = Replace(Phrase, " ", "|") 'Espace entre 0 et le C de Chasseur (Ahah, encore la même erreure)
    Phrase = Replace(Phrase, ", sont présentement en train de défendre le royaume. Elles y resteront pour encore 71 heure(s)", "|")
     
     
    Donnees = Split(Phrase, "|")
     
     
     
    If UBound(Donnees) = 6 Then
        MsgBox Donnees(1)
        MsgBox Donnees(2)
        MsgBox Donnees(3)
    Else
        MsgBox "Phrase modifiée"
    End If
    Text1.Text = Phrase
    End Sub
    Ce que j'ai ici, c'est une phrase contenant des nombres et des mots. Si vous lisez un peu plus le code, vous allez voir que ça ne peut pas fonctionner ! Le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    |Evenger|1150|Titan|de|Granits,|20260|Chasseur|de|Monstress,|sont|présentement|en|train|de|défendre|le|royaume.|Elles|y|resteront|pour|encore|71|heure(s)
    C'est très bien, c'est ce que je voulais. Cependant, pas tout à fait. Je veux ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    |Evenger|1150|Titan de Granits|20260|Chasseur de Monstress|
    Bien entendu, les chiffres ne sont pas fixe, ni les noms. Pourquoi je veux ça? Ça revien encore à mon vouloir du copier-coller de mon jeu. En gros si ça marche, j'aurai qu'à faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim nom As String
    Dim nombre As Long
    Dim nom_de_unite As String
     
    nombre = donnees(1)
    nom_de_unite = Donnees(2)
    nom = Donnees(3)
    Ensuite je manipule le tout. Le nom de l'unité (Titan par exemple), j'irai chercher sa puissance pour ensuite la faire multiplier par "nombre". Etc..

    NOTE: Chasseur de Monstress, c'est une faute voulue. C'est véritablement ça le nom.

    Merci.

  20. #20
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Il serait bon que tu nous dises si c'est pour cette phrase précise et cette phrase seule ou si la solution doit pouvoir s'appliquer à d'autres phrases. Je ne parle pas des noms en particulier mais de la structure, à savoir dans cette phrase :
    - Du texte fixe
    - Un nom à chercher
    - Du texte fixe
    - Un nombre à chercher
    - Un nom à chercher
    - Un nombre à chercher
    - Du texte fixe

    Si c'est toujours la meme structure, ce n'est pas très difficile. Tu peux par exemple supprimer toutes les portions de texte fixe, chercher les sections numériques (par le code ascii des caractères par exemples), il te restera alors les 2 nom que tu cherches.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

Discussions similaires

  1. compter le nombre de meme mot dans un .txt
    Par Gogad dans le forum Général Python
    Réponses: 11
    Dernier message: 04/05/2009, 00h50
  2. [RegEx] Se débarraser de certains mots dans une chaine
    Par Bruno.C dans le forum Langage
    Réponses: 5
    Dernier message: 19/12/2008, 18h34
  3. Réponses: 7
    Dernier message: 22/10/2008, 14h48
  4. c++ position de mot dans un .txt
    Par yanlou dans le forum C++
    Réponses: 6
    Dernier message: 09/07/2008, 11h48
  5. Faire un variable à partir d'un mot dans un txt
    Par Apophis03 dans le forum C
    Réponses: 16
    Dernier message: 21/12/2005, 15h53

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