Recupération plusieures valeurs

Résolu
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007 - 24 janv. 2007 à 02:07
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 25 janv. 2007 à 12:32
Bonjour,
je suis débutant en VB6, et je suis à la recherche d'une petite astuce.
J'aimerai remplir des champs automatiquement à la récupération de données collées dans une textbox.
En gros, les données seraient du genre
TEXTE1 (Texte Numéro )
TEXTE2 (Texte Numéro )
...
Il me faudrait donc que une fois que j'ai remplis la textbox, et que je valide sur un bouton, il vérifie que si dans la textbox, il y a "TEXTE1 (Texte ", il récupère la valeur du numéro (dont je ne connais pas la longueur, mais un len devrait etre assez facile pour moi je pense) et remplisse la textbox Text1, et ainsi de suite pour le 2 avec Text2 etc.

J'espère avoir été assez clair, j'ai peur d'avoir oublié des élèments ;)

En vours remerciant d'avance, et je suis à votre entière disponibilité.

Cordialement

22 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 janv. 2007 à 01:11
re,

perso j'ai toujours pas compris ce que tu voulais extraire, juste que c'était dans le début..

bref, analyse, normalement c'est clair.
cherche bien avant de demander, ensuite si t'as des questions, aucun souci

'   text1 contient tout ton texte en italique
Option Explicit

Private Sub Form_Load()
    Dim sRes1 As String, sRes2 As String
'   on ne va conserver que le début qui
t'intéresse
    Dim sText As String
    sText =  Mid$(Text1.Text, 111, 898)

'   on découpe chaque ligne
(le fameux SPLIT), ah si seulement j'avais une touche F1
!!!
    Dim aArray() As String
    aArray  = Split(sText, vbCrLf)

'  
METAL
    Text1.Text =  "================" & vbCrLf
    Text1.Text = Text1.Text & "MINE DE
MéTAL" & vbCrLf
    Text1.Text = Text1.Text & "================" & vbCrLf
    Text1.Text = Text1.Text & "NIVEAU =
" & GetNumber(aArray(0)) & vbCrLf
    Call GetMetalCristal(aArray(2), sRes1, sRes2)
    Text1.Text = Text1.Text & "RESS
MéTAL = " & sRes1 & vbCrLf
    Text1.Text = Text1.Text & "RESS
CRISTAL = " & sRes2 & vbCrLf
    Text1.Text = Text1.Text & "DURéE =
" & GetDuration(aArray(3)) & vbCrLf
    Text1.Text = Text1.Text & "...DANS
= " & GetDuration(aArray(4)) & vbCrLf
    Text1.Text = Text1.Text & "CONST #°
= " & Right$(aArray(5), 2) & vbCrLf & vbCrLf &
vbCrLf
    
'   CRISTAL
    Text1.Text = Text1.Text & "================" & vbCrLf
    Text1.Text = Text1.Text & "MINE DE
CRISTAL" & vbCrLf
    Text1.Text = Text1.Text & "================" & vbCrLf
    Text1.Text = Text1.Text & "NIVEAU =
" & GetNumber(aArray(6)) & vbCrLf
    Call GetMetalCristal(aArray(8), sRes1, sRes2)
    Text1.Text = Text1.Text & "RESS
MéTAL = " & sRes1 & vbCrLf
    Text1.Text = Text1.Text & "RESS
CRISTAL = " & sRes2 & vbCrLf
    Text1.Text = Text1.Text & "DURéE =
" & GetDuration(aArray(9)) & vbCrLf
    Text1.Text = Text1.Text & "...DANS
= " & GetDuration(aArray(10)) & vbCrLf
    Text1.Text = Text1.Text & "CONST #°
= " & Right$(aArray(11), 2) & vbCrLf & vbCrLf &
vbCrLf

'   DEUTéRIUM
    Text1.Text = Text1.Text & "================" & vbCrLf
    Text1.Text = Text1.Text & "SYNT DE
DEUTéRIUM" & vbCrLf
    Text1.Text = Text1.Text & "================" & vbCrLf
    Text1.Text = Text1.Text & "NIVEAU =
" & GetNumber(aArray(12)) & vbCrLf
    Call GetMetalCristal(aArray(14), sRes1, sRes2)
    Text1.Text = Text1.Text & "RESS
MéTAL = " & sRes1 & vbCrLf
    Text1.Text = Text1.Text & "RESS
CRISTAL = " & sRes2 & vbCrLf
    Text1.Text = Text1.Text & "DURéE =
" & GetDuration(aArray(15)) & vbCrLf
    Text1.Text = Text1.Text & "...DANS
= " & GetDuration(aArray(16)) & vbCrLf
    Text1.Text = Text1.Text & "CONST #°
= " & Right$(aArray(17), 2)
    
    Erase aArray
End Sub

Function GetNumber(ByVal sLine As String) As Long
    Dim iPos As Integer
    iPos = InStr(1, LCase$(sLine), "(niveau")
    GetNumber = Mid(sLine, iPos + 7, Len(sLine) - iPos - 7)
End Function

Sub GetMetalCristal(ByVal sSrc As String, ByRef s1
As String, ByRef s2 As
String)
    sSrc = Right$(sSrc, Len(sSrc) - 32)
    s1 = Left$(sSrc, InStr(1, sSrc, "
"))
    s2 = Right$(sSrc, Len(sSrc) - InStrRev(sSrc, " "))
End Sub

Function GetDuration(ByVal sSrc As String) As String
    GetDuration = Trim$(Right$(sSrc, Len(sSrc) - InStrRev(sSrc, ":")))
    Dim iPos As Integer
    iPos = InStr(1, GetDuration, "  ")
    If iPos > 0 Then GetDuration = Left$(GetDuration, iPos - 1)
End Function

<small>Coloration
syntaxique automatique [AFCK] </small>
       

++
PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 janv. 2007 à 07:55
Si "Texte" ne comporte pas d'espaces en son sein, il te suffit d'aller chercher la position de l'espace entre Texte et Numéro (par Instr) puis d'utiliser Mid pour extraire Numéro à partir de cette position + 1

Si "texte" comporte un espace en son sein, ou encore qu'aucun espace ne sépare "Texte" de "Numéro", il te suffit d'utiliser, en boucle sur la longueur totale, Mid et Isnumeric. Dès que tu trouves un chiffre, tu fais comme dit précédemment, avec sa position et Mid

Tu peux également faire comme ceci, toutefois, juste pour t'amuser :

Private Sub Command1_Click()
  toto = "ce que tu veux 0227"
  For i = 1 To Len(toto)
      toto = Mid(toto, i)
      If Val(toto) <> 0 Then
      Exit For
    End If
  Next
  MsgBox Trim(toto)
End Sub

Iu encore utiliser Instrev, "capter la position de l'espace, etc...

Bref : une foule de solutions existent, selon tes goûts...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 janv. 2007 à 10:42
salut,

plus précisément pour ton exemple (et adapté puisque tu as plusieurs zones de texte) :

'poser une zone de texte nommée Text1
Option Explicit
'
Private Sub Form_Load()
    Text1.Text =  "TEXTE1 (Texte 5
)"
    MsgBox GetNombre(Text1) 'retournera
5

    Unload Me
End Sub
'
Function GetNombre(oTB As TextBox) As Long
    Dim iPos As Integer
    iPos = InStr(1, LCase$(oTB.Text), "(texte")
    GetNombre = Mid(oTB.Text, iPos + 7, Len(oTB.Text) - iPos - 8)
End Function

<small>Coloration
syntaxique automatique [AFCK] </small>
       

++
PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
24 janv. 2007 à 13:43
Et ben ... on voit que je suis débutant, il me reste du temps avant de manipuler toutes ces solutions ;)
En fait, pour être sincère, il s'agit d'un petit soft perso pour un jeu online (Ogame, pour définitivement passer pour un geek), et donc, j'aimerai remplis des champs automatiquement si je selectionne le contenu de toute la page.
Or, il apparait également des nombres dans la pages qui ne m'interessent pas.
Un exemple pour que ca soit concrêt.

       Métal     Cristal     Deutérium     Energie      
    249.980     99.142     70.876     20/15.707    

    Mine de métal (Niveau 31)
Principal fournisseur de matières premières pour la construction de structures portantes et de vaisseaux.
Ressources nécessaires : Métal: 17.257.595 Cristal: 4.314.398
Durée de construction :1j 17h 29m 4s
Construction possible dans : 39j 15h 44m 29s    Construction
du niveau 32
    Mine de cristal (Niveau 27 )
Fournisseur principal de ressources pour les installations électroniques et pour les alliages.
Ressources nécessaires : Métal: 15.576.890 Cristal: 7.788.445
Durée de construction :1j 20h 56m
Construction possible dans : 45j 4h 40m 52s    Construction
du niveau 28

C'est ce genre de texte qui serait rentré dans la TextBox, et comme vous pouvez le constater, il y a pas mal de nombres qui m'importent peu.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 janv. 2007 à 13:59
une lettre de plus, dans l'exemple rempli la textbox par un vrai cas et dans la fonction remplace (texte par (niveau et 8 par 7
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 janv. 2007 à 14:03
Un exemple et des explications , donc, pour que l'on te comprenne et t'aide bien une fois pour toutes (car ta nouvelle explication s'écarte quelque peu de ta 1ère demande) :

1) que vient faire là-dedans :

 Métal     Cristal     Deutérium     Energie      
    249.980     99.142     70.876     20/15.707    

que tu n'utilises apparemment pas ailleurs ?
2) mets entre guillemets la totalité de ce que tu as dans ta textbos et mets en rougece que tu veux en extraire
3) explique le raisonnement logique de cette "extraction" . une telle extraction ne peut être faite par un ordinnateur (un ordinnateur ne réféchit pas... il exécute) que si on lui indique ce raisonnement, qu'il répètera bêtement...
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
24 janv. 2007 à 14:23
1) Alors en fait, pour mon soft, je veux selectionner l'entièreté de ce qu'il y a dans la page, et donc, celà en fait partie
2) Ce qu'il y aura dans la TextBox, c'est ce que j'ai mis en italique dans le message précédent, et ce que je dois récuperer pour mes champs, c'est ce qu'il y a en gras et rouge (c'est-à-dire le niveau de la mine).
donc, en gros voici ce qui sera collé dans la textBox

       Métal     Cristal     Deutérium     Energie      
    3.633     7.575     72.639     20/15.707    

    Mine de métal (Niveau 31 )
Principal fournisseur de matières premières pour la construction de structures portantes et de vaisseaux.
Ressources nécessaires : Métal: 17.257.595 Cristal: 4.314.398
Durée de construction :1j 17h 29m 4s
Construction possible dans : 40j 5h 31m 37s    Construction
du niveau 32
    Mine de cristal (Niveau 27 )
Fournisseur principal de ressources pour les installations électroniques et pour les alliages.
Ressources nécessaires : Métal: 15.576.890 Cristal: 7.788.445
Durée de construction :1j 20h 56m
Construction possible dans : 45j 17h 35m 52s    Construction
du niveau 28
    Synthétiseur de deutérium (Niveau 26 )
Extrait la petite quantité de deutérium de l'eau d'une planète.
Ressources nécessaires : Métal: 8.522.269 Cristal: 2.840.756
Durée de construction :21h 51m 7s
Construction possible dans : 19j 20h 42m 2s    Construction
du niveau 27
    Centrale électrique solaire (Niveau 26 )
Les centrales électriques solaires transforment les rayons de soleil en énergie. Presque tous les bâtiments ont besoin d'énergie pour fonctionner.
Ressources nécessaires : Métal: 2.840.756 Cristal: 1.136.302
Durée de construction :7h 38m 53s
Construction possible dans : 6j 15h 13m 21s    Construction
du niveau 27
    Centrale électrique de fusion
La centrale électrique de fusion produit de l'énergie en fusionnant 2 atomes d'hydrogène en un atome d'hélium
Ressources nécessaires : Métal: 900 Cristal: 360 Deutérium: 180
Durée de construction :8s
    construire
    Usine de robots (Niveau 12 )
Les usines de robots produisent des robots ouvriers qui servent à la construction de l'infrastructure planétaire. Chaque niveau augmente la vitesse de construction des différents bâtiments.
Ressources nécessaires : Métal: 1.638.400 Cristal: 491.520 Deutérium: 819.200
Durée de construction :4h 5m 45s
Construction possible dans : 8j 9h 49m 41s    Construction
du niveau 13
    Usine de nanites (Niveau 4 )
C'est le perfectionnement de la technologie de robots. Chaque niveau augmente la vitesse de construction des vaisseaux et des bâtiments.
Ressources nécessaires : Métal: 16.000.000 Cristal: 8.000.000 Deutérium: 1.600.000
Durée de construction :1j 22h 9m 13s
Construction possible dans : 46j 23h 26m 26s    Construction
du niveau 5
    Chantier spatial (Niveau 14 )
Le chantier spatial permet de construire les vaisseaux et les installations de défense.
Ressources nécessaires : Métal: 6.553.600 Cristal: 3.276.800 Deutérium: 1.638.400
Durée de construction :18h 54m 16s
Construction possible dans : 19j 5h 10m 8s    Construction
du niveau 15
    Hangar de métal (Niveau 7 )
Hangar pour minerai avant le traitement.
Ressources nécessaires : Métal: 256.000
Durée de construction :29m 32s
Construction possible dans : 14h 7m 21s    Construction
du niveau 8
    Hangar de cristal (Niveau 5 )
Hangar pour cristal avant le traitement.
Ressources nécessaires : Métal: 64.000 Cristal: 32.000
Durée de construction :11m 4s
Construction possible dans : 3h 26m 44s    Construction
du niveau 6
    Réservoir de deutérium (Niveau 1 )
Réservoirs géants pour le stockage de deutérium.
Ressources nécessaires : Métal: 4.000 Cristal: 4.000
Durée de construction :55s
Construction possible dans : 1m 14s    Construction
du niveau 2
    Laboratoire de recherche (Niveau 11 )
Le laboratoire de recherche est nécessaire pour développer de nouvelles technologies.
Ressources nécessaires : Métal: 409.600 Cristal: 819.200 Deutérium: 409.600
Durée de construction :2h 21m 47s
Construction possible dans : 4j 18h 29m 27s    Construction
du niveau 12
    Terraformeur (Niveau 4 )
Le terraformeur permet d'agrandir la surface utile des planètes
Ressources nécessaires : Cristal: 800.000 Deutérium: 1.600.000 Energie: 16.000
Durée de construction :1h 32m 18s
    Construction
du niveau 5
    Silo de missiles (Niveau 6 )
Les silos de missiles servent à stocker les missiles.
Ressources nécessaires : Métal: 1.280.000 Cristal: 1.280.000 Deutérium: 64.000
Durée de construction :4h 55m 23s
Construction possible dans : 7j 11h 29m 35s    Construction
du niveau 7

Or, ce qui m'interesse n'est que ce qui est souligné (c'est-à-dire le niveau de metal, de cristal et de deutérium).
Donc, pour résumer.
1) Je séléctionne l'entièreté du contenu de la page dans mon browser
2) Je colle le contenu dans une TextBox
3) Je clique sur le bouton, ce qui va entrainer la recherche du niveau des 3 mines que je veux, et remplir les cases selon le bouton Radio (que je vais seulement insérer aprés, à coté de chaque planète,ainsi que la-dite TextBox) pour remplir les cases de la planète séléctionnée automatiquement au click.

J'espère avoir répondu à vos questions
0
cs_caramelmou Messages postés 56 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 23 avril 2008 3
24 janv. 2007 à 22:47
Rigolo, j'avis fait un truc du genre pour recuperer les valeurs
d'analyse d'un vieil automate de biochimie:

Pour ton exemple, voici un code à adapter
Private Sub Command1_Click()
    MsgBox search_val(26, "Cristal")    ' affiche 2840756
    MsgBox search_val(4, "Deutérium")  ' affiche 1600000
End Sub

Function search_val(critere1 As Long, critere2 As String)
    Dim c As String, strval As String, pos As Long
    pos = InStr(Me.Text1, "Niveau " & critere1 & " )")
    ' j'ajoute le ' )' pour ne pas risquer de confondre niveau 6 et niveau 66
    If pos > 0 Then
        pos = InStr(pos, Me.Text1.Text, critere2)
        If pos > 0 Then
            pos = pos + Len(critere2)
            c = Mid(Me.Text1, pos, 1)
            ' il faut eliminer les sepérateur de milliers americain (le point)
            While (c >= "0" And c <= "9") Or c = "." Or c = " " Or c = ":"
                If (c >= "0" And c <= "9") Then
                    strval = strval & c
                End If
                pos = pos + 1
                c = Mid(Me.Text1, pos, 1)
            Wend
        End If
    End If
    search_val = Val(strval)
End Function

On peut surement optimiser et adapter

Dr.T
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 janv. 2007 à 22:58
Pas d'accord di tout !
Le mot niveau exisqte également ailleurs !
Ici, entre autres :
Construction possible dans : 40j 5h 31m 37s    Construction
du niveau 32

A sa place, je ferais un split sur "(Niveau " ===>>> j'obtiendrais alors des chaines toto de type ##AAAAAAA... dont la valeur ( Val(toto), donc ) serait excatement ce que je cherche, à savoir ##
 et voilà .
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
24 janv. 2007 à 23:03
et c'est pas possible de faire une recherche simplement sur Mine de métal (Niveau, Mine de métal (Niveau  et
Mine de deutérium(Niveau ?

Pour le code de Caramelmou, j'avoue ne pas comprendre du tout le fonctionnement.

Private Sub Command1_Click()
    MsgBox search_val(26, "Cristal")    ' affiche 2840756
    MsgBox search_val(4, "Deutérium")  '
affiche 1600000
End Sub

A quoi correspond le
2840756 et le1600000 ?
De plus, comment en cliquant sur le command1 vas-tu rechercher le contenu de la TextBox ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 janv. 2007 à 23:08
Fais comme je t'ai dit (avec split)

Une précision toutefois : ignore la toute première chaine (elle te retournera 0) et ne sert à rien !
commence à l'index 1 du tableau obtenu par ton split .
C'est facile !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 janv. 2007 à 23:10
Je n'aime par contre pas ta question relative à la façon d'utiliser command1 pour extraire le texte de ta Texbox !
Là, c'est trop enfantin, vois-tu ....!
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
24 janv. 2007 à 23:11
Sauf que je ne sais pas du tout comment marche ton système de split etc
N'aurais-tu pas un lien vers un exemple ? (je sais que ce n'est pas la meilleure facon d'apprendre, mais bon, peut-être que celà m'aidera)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 janv. 2007 à 23:22
Donc : tu ouvres ton aide en ligne sur ce mot Split.
Tu lis.
Tu lis également les exemples qui viennent avec ce mot dans ton aide en ligne

S'il le faut : tu recherches sur ce forum les sujets (ils ne manquent certes pas) qui en traitent

Tu reviens avec du code d'essai, au besoin, en nous exposant la difficulté ponctuelle que tu pourrais rencontrer.

Bonne étude.
0
cs_caramelmou Messages postés 56 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 23 avril 2008 3
24 janv. 2007 à 23:26
Pour jmfmarques: c'est pour ça que je rajoute ' )' espace ET parenthese (a priori il n'y en a pas d'autre dans son exemple.

Pour bigouf:
dans une form : créer un textbox nomme textbox1 et un bouton de commande nomme Command1

Tu colle le code dans le module de ta form, tu lance, tu colle ton texte donné en exemple dans le textbox, tu clic sur le bouton command1
ça te renvoie les valeurs prises dans le texte (si j'ai bien compris ce que tu veux extraire) à toi d'adapter....

Pour jmfmarques:  je n'ai pas utilise le split parce que je suis faineant : ce code est evidemment très basique mais il fonctionne sur l'exemple présenté : Il sera peut être plus facile à comprendre pour quelqu'un qui debute.

Dr.T
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
24 janv. 2007 à 23:41
J'ai un tit stress.
j'ai c/c ce que tu m'as dit, et ca me donne "0" et "0" dans les msgbox.
0
cs_caramelmou Messages postés 56 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 23 avril 2008 3
24 janv. 2007 à 23:54
Tu est sur d'avoir collé l'integralite du texte en italique posté ici (c'est avec cet exemple que j'ai essayé)
Sinon pour le principe
la lignepos InStr(Me.Text1, "Niveau " & critere1 & " )")  cherche la premiere occurence de "Niveau 26)" si critere1 26
à partir de la on cherche la premire occurence de critere2
"Cristal" par exemple
c'est la ligne
pos = InStr(pos, Me.Text1.Text, critere2)
on ajoute à pos la longueur du mot critere2, et à paritr de la on boucle en extrayant tout les chiffres en sautant les ":" "." et " " jusqu'à tomber sur un caracteres alphbetique.
Puis on renvoie la valeur.
Si tu obtient 0, execute en pas à pas pour essayer de comprendre ce qui se passe. (utilisation de la fonction mid, instr, etc...)
Je ne peux pas grand chose de plus pour toi...

Amicalement.
0
cs_caramelmou Messages postés 56 Date d'inscription jeudi 25 décembre 2003 Statut Membre Dernière intervention 23 avril 2008 3
25 janv. 2007 à 00:28
Pardon à jmfmarques, il avait raison. il y a 2 "(niveau 26 )", un seul cas mais c'est un de trop.
j'avoue que l'analyse de ce genre de texte me laisse un peu... perplexe 
moi qui pensais avoir tout lu...


donc il faut que critere1 soit une chaine
à changer
search_val(critere1 As String, critere2 As String)
puis pour la premiere recherche
pos = InStr(Me.Text1, critere1 )
et critere1 devient nom plus 26 mais  "deutérium (Niveau 26 )"

Mais ça n'est pas pour ça que le code précédent te renvoyait 0, donc à toi de chercher...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 janv. 2007 à 01:17
ps : j'ai pas fait de boucle pour les 3 catégorie pour mieux y voir... sinon c'est à faire, évidemment.
çà donnerait çà (pour le retour en zone texte) :

    Dim i As Integer
    For i = 0 To 2
        Text1.Text = Text1.Text & "================" & vbCrLf
        If i = 0 Then
            Text1.Text = Text1.Text & "MINE DE MéTAL" & vbCrLf
        ElseIf i = 1 Then
            Text1.Text = Text1.Text & "MINE DE CRISTAL" & vbCrLf
        Else
            Text1.Text = Text1.Text & "SYNT DE DEUTéRIUM" & vbCrLf
        End If
        Text1.Text = Text1.Text & "================" & vbCrLf
        Text1.Text = Text1.Text & "NIVEAU = " & GetNumber(aArray(i * 6)) & vbCrLf
        Call GetMetalCristal(aArray(i * 6 + 2), sRes1, sRes2)
        Text1.Text = Text1.Text & "RESS MéTAL = " & sRes1 & vbCrLf
        Text1.Text = Text1.Text & "RESS CRISTAL = " & sRes2 & vbCrLf
        Text1.Text = Text1.Text & "DURéE = " & GetDuration(aArray(i * 6 + 3)) & vbCrLf
        Text1.Text = Text1.Text & "...DANS = " & GetDuration(aArray(i * 6 + 4)) & vbCrLf
        Text1.Text = Text1.Text & "CONST #° = " & Right$(aArray(i * 6 + 5), 2) & vbCrLf & vbCrLf & vbCrLf
    Next i

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
BiGOuF Messages postés 90 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 12 décembre 2007
25 janv. 2007 à 01:57
Je n'ai pas su aller voir le MSDN car je n'ai aps le CD en ma possession actuellement, auquel cas j'aurai cherché dedans, celà va de sois.

Lors de l'execution de ton premier code, j'ai un type incompatible pour cette portion de code

Function GetNumber(ByVal sLine As String) As Long
    Dim iPos As Integer
    iPos = InStr(1, LCase$(sLine), "(niveau")
    GetNumber = Mid(sLine, iPos + 7, Len(sLine) - iPos - 7)
End Function
<hr size="2" width="100%" />"perso j'ai toujours pas compris ce que tu voulais extraire, juste que c'était dans le début.."
Au lieu de remplir les champs à la main, je souhaiterai faire une selection de toute la page, la coller dans la textbox, et qu'au clic sur un bouton, le programme recherche la phrase "Mine de métal ( Niveau " et récupère la prochaine chaine de caractère (qui sera le niveau, mais dont j'ignore la longueur) pour placer ce niveau dans une variable et également remplir la textbox "Metal" de la planète selectionnée, et même chose pour le cristal et le deutèrium (une fois que j'aurais rajouté des Options, je vérifierai lequel est coché pour remplir les 3 cases en rapport à la planète.)
Je ne vois pas trop en quoi tu ne vois pas où je veux en venir :s
Au pire, si je ne suis toujours pas assez clair, je ferrai des Print Screen pour montrer où je veux vraiment en venir.
0
Rejoignez-nous