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. #21
    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
    J'ai plusieurs modèles. Je vais tous vous les présenter.
    Rapport de Combat:

    Victoire! Vos troupes, ayant combattu durement, ont réussi à prendre l'avantage sur vos adversaires et à pénétrer leurs défenses.

    Dans la bataille Cabzounet, Sadik, Tristounet, Bichounette, Mrnet,

    VS

    Loupiot, Tholsadum, Doublevie, Sanctphaxion, Gustak, Gricnash, Fred, Eragon

    Attaquants :
    Chasseur de Monstres Au départ : 406695, Mort : 4877
    Farfadet Au départ : 675367, Mort : 8099
    Troll de Kym Nak Mar Au départ : 28338, Mort : 340
    Enchanteresse d'Asphraenna Au départ : 24065, Mort : 289
    Drake de Malariel Au départ : 1445, Mort : 17
    Assassin d'Oblivion Au départ : 15365, Mort : 184
    Archange de Jericho Au départ : 8887, Mort : 107
    Ange Au départ : 52014, Mort : 624
    Séraphin Au départ : 9162, Mort : 110
    Titan de Granit Au départ : 24261, Mort : 291
    Guerrier Nain Au départ : 8700, Mort : 104
    Gnome des Bois Au départ : 9000, Mort : 108
    Golem d'Acier Au départ : 4100, Mort : 49
    Élémentaires de feu Au départ : 2914, Mort : 35
    Fou de Guerre Au départ : 82475, Mort : 989
    Valkyrie Au départ : 18224, Mort : 219
    Loups de Fenris Au départ : 16091, Mort : 193

    Pourcentage de perte pour les attaquants : 1.2%

    Défenseurs :
    Chasseur de Monstres Au départ : 116999, Mort : 8781
    Farfadet Au départ : 442169, Mort : 33186
    Troll de Kym Nak Mar Au départ : 27228, Mort : 2044
    Enchanteresse d'Asphraenna Au départ : 630, Mort : 47
    Drake de Malariel Au départ : 434, Mort : 33
    Assassin d'Oblivion Au départ : 2057, Mort : 154
    Archange de Jericho Au départ : 2976, Mort : 223
    Ange Au départ : 2497, Mort : 187
    Séraphin Au départ : 653, Mort : 49
    Pourcentage de perte des défenseurs : 7.5%


    Population décimée : 2583
    Population gagnée pour Bernachouette : 95
    Celle-ci. Premièrement, je compte faire compter le nombre d'attaquants contre le nombre défenseurs, donc ceci:
    Dans la bataille Cabzounet, Sadik, Tristounet, Bichounette, Mrnet,

    VS

    Loupiot, Tholsadum, Doublevie, Sanctphaxion, Gustak, Gricnash, Fred, Eragon
    Ensuite, ligne par ligne, je veux que le programme identifie chaques unités (Séraphin, ange, titan ou peut importe) et qu'il le lie avec le chiffre d'à coté.
    Séraphin Au départ : 653, Mort : 49
    Il y avait donc 653 Séraphin. À ce moment-là, un séraphin vaut, par exemple, 50 points. Donc 653 multiplié par 50.

    Etc, etc.

    Ensuite, il y à ça:


    Type d'armée Village(D) Légion 1 Légion 2(D)
    Espionne Elfe Noire 0 0 21
    Araignée Géante 111 0 0
    Arbalétrier Elfe Noir 0 0 794
    Baliste des Trois Lunes 0 0 1
    Enchanteresse d'Asphraenna 0 2122 152
    Assassin d'Oblivion 0 1879 165

    En tout, il y a un maximum de 4 légion donc avant de faire les calcules de points, je dois tout assembler:
    Enchanteresse d'Asphraenna 0 2122 152
    Ça donne en fait, 2274, donc il y a 2274 Enchanteresse d'Asphraenna. Lorsque j'ai le chiffre, il ne me reste plus qu'à le multiplier par son nombre de points (par exemple 50, ici ça donnerait 113700)

    Et il n'en reste qu'une, celle que j'essai de faire:
    Votre allié, Madrag, vous informe qu'il envoit que des troupes, composées de 125000 Loups de Fenriss, dans le but d'assurer la protection du royaume. Il mentionne aussi que ses troupes arriveront dans 2 heure(s).
    Soit une défense comme celle-ci ou soit une attaque comme celle-là:
    Notre royaume est présentement en train de se faire attaquer! Les troupes ennemies, aux commandes de Samkorius, sont constituées de 9190 Damné de Malkhors, 430 Élémentaires de feus, 550 Spectre de Morfanoss, 2400 Liches, 80 Éfritss et leur assault durera encore 3 heure(s).
    C'est toujours la même phrase. "Notre royaume est présentement en train de se faire attaquer! Les troupes ennemies, aux commandes de ***, sont constituées de *** et leur assault durera encore *** heures.

    Les ***, c'est ce qui n'est pas fixe. Il n'y a aucune limite dans le nombre de troupes ennemies.
    9190 Damné de Malkhors, 430 Élémentaires de feus, 550 Spectre de Morfanoss, 2400 Liches, 80 Éfritss
    Ce ne sont jamais les mêmes, c'est pourquoi je pourrais probablement utiliser une base de donnée Access pour tout stocker l'informations.

    Donc voilà, j'en ai peut-être trop dis, mais vous connaissez maintenant les modèles que je dosi ABSOLUMENT suivre. Il y a déjà un calculateur du genre, si vous voulez le voir en action pour connaître un peu le résultat, contactez-moi via la messagerie privé.

    Sinon pour mon probleme plus haut, c'est reglé. Au lieu de " " je dois mettre "_"

    Donc au cas ou vous seriez perdu, je re-lance ma question: Comment sélectionner l'unités avec son chiffre à la droite.
    Votre allié, Lordnorac, vous informe qu'il envoit que des troupes, composées de quelques Catapulte Pestilentielles, 2320 Ghoules, 510 Spectre de Morfanoss, 60 Zombies, quelques Nécromanciens, quelques Éfritss, 850 Squelettes, 10 Damné de Malkhors, 10 Élémentaires de feus, quelques Banshees, quelques Momie de Camerons, dans le but d'assurer la protection du royaume. Il mentionne aussi que ses troupes arriveront dans 3 heure(s).
    Voici un exemple de grosse troupe, mais comme vous pouvez voir, les unités se trouvent toujours entre "composées" et ", dans le but d'assurer la protection du royaume.

    Merci et hop, ça en fait de la lecture...

  2. #22
    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
    Ben maintenant ça va t'en faire de l'écriture, tu peux appliquer la méthode que je t'ai donné auparavant. Seule exception, dans ton dernier exemple tu mets parfois des chiffres précis, parfois "quelques", donc là tu vas devoir affiner ton test mais vraiment rien d'infaisable.
    Supprimes le texte fixe et tu as donc ensuite une liste "nombre, nom, nombre nom, 'quelques', nom, nombre, nom, etc..."

    Tu regardes donc si tu as un nombre ou 'quelques' en premier, tu mémorises, tu coupes, tu prends la chaine jusqu'à ce que tu trouves un nombre ou 'quelques', tu mémorises le nom, tu coupes la chaine, etc...
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #23
    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
    Il n'y aura pas de formule passe-partout.
    Voici quelques explications et conseil mais tu devras faire pour chaque modèle un code différent (ou presque).
    Replace : remplace toutes les occurences d'une chaine dans une autre (dans l'exemple tu enlevait tous les espaces donc plus moyen de trouver les autres phrases). Il faut donc procéder par les morceaux de phrases uniques (en général les plus long) pour terminer par les plus petits.
    Ensuite regarde du coté de Instr (si on découpe selon les virgules, alors dans chaque morceau (sauf le premier) le premier espace et celui qui se trouve derrière le nombre) et du coté de Left, Right et Mid pour réccupérer les parties Gauche, Droite ... d'une phrase.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  4. #24
    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 OhMonBato
    Ben maintenant ça va t'en faire de l'écriture, tu peux appliquer la méthode que je t'ai donné auparavant. Seule exception, dans ton dernier exemple tu mets parfois des chiffres précis, parfois "quelques", donc là tu vas devoir affiner ton test mais vraiment rien d'infaisable.
    Supprimes le texte fixe et tu as donc ensuite une liste "nombre, nom, nombre nom, 'quelques', nom, nombre, nom, etc..."

    Tu regardes donc si tu as un nombre ou 'quelques' en premier, tu mémorises, tu coupes, tu prends la chaine jusqu'à ce que tu trouves un nombre ou 'quelques', tu mémorises le nom, tu coupes la chaine, etc...
    Quelques signifie un seul... Je ne sais pas pourquoi c'est ainsi, mais bon.

  5. #25
    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
    Très bien mais as tu compris ce que je te suggère de faire ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  6. #26
    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 OhMonBato
    Très bien mais as tu compris ce que je te suggère de faire ?
    Euhm, je crois que oui. Je vais essayer de faire de mon mieux, jouer avec la MSDN en cas de problemes et sinon, je vous revien avec ça. Néanmoins, si tu as des exemples, c'est toujours bien apprécié.

    Merci.

  7. #27
    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. J'ai fais quelques progrès, mais je bloque encore. Ayant fait une petite liste des choses qui pourrait m'être utile dans l'onglet "Chaîne de Caractères", j'ai essayé d'utiliser les plus efficaces et surtout celles que je comprennais ou que je voulais comprendre. Alors, voici du code (désolé si ce n'est pas très propre)
    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
    30
    31
    32
    Option Explicit
    Private Sub Form_Load()
    Dim phrase As String
    Dim Donnees() As String
    Dim Duo() As String
    Dim nombre As Long
    Dim nombre2 As Long
    Dim nom As String
    Dim nom2 As String
    phrase = "Les troupes de Gardor, composées de 6340 Chasseur de Monstress, 8 Titan de Granits, sont présentement en train de défendre le royaume. Elles y resteront pour encore 5 heure(s)"
    phrase = Replace(phrase, "Les troupes de ", "|")
    phrase = Replace(phrase, ", composées de ", "|")
    phrase = Replace(phrase, ", sont présentement en train de défendre le royaume. Elles y resteront pour encore ", "|") 'Ici je met l'espace entre 0 et T (C'est ici que ça dégringole)
    phrase = Replace(phrase, " heure(s)", "|")
    Donnees = Split(phrase, "|")
        nombre = Val(Donnees(2))
        nom = Right(Donnees(2), (Len(Donnees(2)) - (Len(nombre))) - 1)
    Duo = Split(nom, ",")
        MsgBox Donnees(1)
        MsgBox Donnees(2)
        MsgBox Donnees(3)
        MsgBox Duo(1) 'Ça renvoi "8 Titan de Granits"
    nombre2 = Val(Duo(1)) 'Je sélectionne que le nomre, ça renvoi donc 8
    nom2 = Right(Duo(1), (Len(Duo(1)) - (Len(nombre2)) + 1)) 'Je sélectionne que le nom, ça renvoi donc Titan de Granits
    nom = Right(Donnees(2), ((Len(Donnees(2)) - (Len(nom) + Len(nombre)))))
    'En haut, je devais redéfinir la variable nom car si je ne le faisait pas, ça renvoyait:"Chasseur de Monstress, 8 Titan de Granits"
    Text1.Text = nombre
    Text2.Text = nom
    Text3.Text = nombre2
    Text4.Text = nom2
    'Les zone de texte, ça ne vous regarde pas. Je les ai placés là pour me renvoyer les valeurs des variables(Pour voir si tout fonctionnait)
    End Sub
    Avant tout, si ma phrase aurait été
    Les troupes de Gardor, composées de 6340 Chasseur de Monstress, sont présentement en train de défendre le royaume. Elles y resteront pour encore 5 heure(s)
    J'avais réussis, ça me renvoyait 6340 dans la variable nombre et "Chasseur de Monstress" dans la variable nom. Mais cela se complique pas mal avec le rajout d'unités.

    Voici ce que ça donne à la fin:
    nom= s
    nombre= 6340
    nom2= Titan de Granits
    nombre2= 8

    Donc la deuxième unité (8 Titan de Granits) fonctionne mais mais c'est au détriment de la première unité (Chasseur de Monstress)

    Voilà c'est pas mal tout, comment pourrais-je arranger cela pour que
    nom = Chasseur de Monstress
    nomre = 6340
    nom2 = Titan de Granits
    nombre2 = 8

    Évidemment, lorsque j'aurai trouvé la réponse à mon questionnement, je passerai à trois unités. Par chance, il y a un maximum de 12 unités. Mais se ne sont pas des unités "fixes". À moins qu'il y ait une recette magique, je ne sais plus trop.

    Aie je n'ai pas encore terminé un modèle, je sens qu'avec les deux autres, ce sera très long !

    Merci. (Désolé des fautes d'écriture, s'il n'y en a, j'ai du me presser un peu)

  8. #28
    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,

    Je vien tout juste de recommencer ce projet et j'en suis donc à la même part du problème. J'essaie d'optimiser le tout afin que ça fonctionne mais rien, 3 jours de recherche tombée à l'eau.

    N'hésitez pas à lire plus haut afin de connaître mes désirs réels, j'attend vos conseils/astuces/codes


    À plus.

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