Recuperer plusieur chaine de caractère.

VB2010M Messages postés 6 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 1 mai 2014 - 1 mai 2014 à 03:48
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 1 mai 2014 à 17:09
Bonjour, J'ai un petit problème concernant la récupération caractère dans cette chaine de caractère:

<head>
<layout>
<root-layout width="240" height="320"/>
<region id="Text" width="100%" height="30%" left="0%" top="70%" fit="scroll"/>
<region id="Image" width="100%" height="70%" left="0%" top="0%" fit="meet"/>
</layout>
</head>
<body>
<par dur="8000ms">
<img src="62237_1508781251894_1605223575_1255994_5397485_n.jpg" region="Image"/>
</par>
<par dur="8000ms">
<img src="292861_235321486509036_100000935601583_623310_2267856_n.jpg" region="Image"/>
</par>
</body>
</smil>
J'ai essayé ca:
 toto50 = Mid(c, InStr(c, "<img "), InStrRev(c, " region="))

Le problème sa récupère les deux en même temps :
<img src="62237_1508781251894_1605223575_1255994_5397485_n.jpg" region="Image"/>
</par>
<par dur="8000ms">
<img src="292861_235321486509036_100000935601583_623310_2267856_n.jpg" region=
hors je veux récupérer les noms de fichiers contenu dans les balise (<img src=) séparément l'un après l'autre.
Merci de m'aider
A voir également:

6 réponses

Whismeril Messages postés 19013 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 12 avril 2024 654
1 mai 2014 à 08:55
Bonjour regarde du coté des expressions régulières (Regex).
0
Zermelo Messages postés 378 Date d'inscription samedi 22 septembre 2012 Statut Membre Dernière intervention 13 août 2017 14
1 mai 2014 à 08:56
Bonjour VB2010M,

Ais-je bien compris ? L'un après l'autre dans le temps ? Ce doit être possible avec un contrôle Timeur, mais je n'en vois pas l'utilité.

Cordialement.
0
Whismeril Messages postés 19013 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 12 avril 2024 654
1 mai 2014 à 09:52
Bonjour, il s'est certes mal exprimé, mais il me semble assez clair qu'il veut soit un string concaténant toutes ses occurrences, soit une collection.
D'ou ma proposition sur les regex.
0
VB2010M Messages postés 6 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 1 mai 2014
1 mai 2014 à 11:00
Merci pour vous réponses, enfaite j'ai plusieurs fichiers, et chaque fichier a deux ou trois nom contenu dans des balises d'image, je veux récupérer ces noms, et enregistrer chaque un dans un fichier différant, chose que je n'arrive pas à faire avec mon code:
 
loca = IO.Directory.GetFiles(dir, "*" & ".mms")

For Each f As String In loca
c = IO.File.ReadAllText(f, System.Text.Encoding.Default)
toto50 = Mid(c, InStr(c, "<img "), InStrRev(c, " region="))
next

IO.File.WriteAllText(fichier2, toto50, System.Text.Encoding.Default)
Il récupère tout les noms et les enregistre dans un fichier mais ce n'est pas ce que je veux.
0
Whismeril Messages postés 19013 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 12 avril 2024 654
1 mai 2014 à 12:06
Je ne comprends pas grand chose à ton explication.

Avec les Regex tu va récupérer une collection de résultats.
De cette collection tu pourras ne faire qu'un fichier ou autant de fichiers qu'il y a de résultats.
0

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

Posez votre question
VB2010M Messages postés 6 Date d'inscription lundi 7 avril 2014 Statut Membre Dernière intervention 1 mai 2014
Modifié par VB2010M le 1/05/2014 à 12:44
Justement je veux savoir comment sauvegarder chaque résultat dans un ficher différant :)
autre question:
comment ajouter un numéro au fichier de sortie cet a dire numéroter les fichier sortant ex: (fichier001.txt fichier002.txt etc..)
IO.File.WriteAllText(fichier2 & le numéro du fichier, toto50, System.Text.Encoding.Default)
J'espère avoir été clair :/
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
1 mai 2014 à 17:09
Bonjour
Clair translucide
pas compris
hors je veux récupérer les noms de fichiers contenu dans les balise (<img src=)

si <img src="62237_1508781251894_1605223575_1255994_5397485_n.jpg" region="Image"/>
tu veux récuperer
62237_1508781251894_1605223575_1255994_5397485_n.jpg ?
et écrire chacun dans un fichier différent ?
si oui

Private listoutputfilename As New List(Of String)
Private list1 As New List(Of String)
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim listfile() As String
'liste des fichiers se terminant avec extension mms dans le dossier bin/debug ou bin/release
listfile = IO.Directory.GetFiles(Application.StartupPath, "*" & ".mms").ToArray
For Each item In listfile
list1 = IO.File.ReadAllLines(item).ToList
Findfile()
Next
WriteToFiles()
End Sub
Private Sub Findfile()

For Each item In list1
If item.Contains("img src=") Then
listoutputfilename.Add(item.Substring(item.IndexOf("=") + 2, item.IndexOf("jpg") + 1 - item.IndexOf("=")))
End If

Next
End Sub
Private Sub WriteToFiles()
Dim index As Integer = 1
For Each file As String In listoutputfilename
IO.File.WriteAllText(Application.StartupPath & "\file " & index.ToString & ".txt", file)
index += 1
Next
End Sub
End Class
0
Rejoignez-nous