Bonjour, j'ai beaucoup de problèmes avec cette tâche qui m'a été donnée.
J'ai besoin de trouver une séquence de 8 numéros consécutifs dans un fichier texte et de mettre cette ligne dans une zone msg.
Jusqu'à présent, je n'ai trouvé que mais ça ne m'aidera pas, je suppose p> éditer:
Un exemple de ligne Woudl ressemble à ceci: p> Dans ce cas, je aurais besoin du 10793013 en tant que sortie p> EDIT 2:
Ceci est le code que j'ai actuellement réussi à créer p> le compteur lui-même semble fonctionner cependant pour une raison quelconque, aucune entrée ne se retrouve dans ma liste.
Est-ce que je manque un cas où les entrées sont supprimées?
PS: J'espère que cela ne vous dérange pas des noms de variables allemands. Si vous faites p>
3 Réponses :
Essayez d'introduire un compteur pour vérifier la consécutivité de votre clause IF et réinitialisez-la et de résultat à zéro une fois qu'il n'est pas numérique!
Dim result As String = "" Dim conCounter As Integer = 0 For Each i As Char In fileLocation If Char.IsDigit(i) Then conCounter = (conCounter + 1) result = (result + i) Else conCounter = 0 If (result.Length < 8) Then result = "" End If End If Next MsgBox(result)
for each word in fileLocation Dim noExp As New Regex("([0-9]{8,11})") Dim m As Match = noExp.Match(word) If Not m.Success Then Throw New Exception("No sequence number found") Dim c = m.Groups(1).Captures(0) Msgbox(c.value) next how about this ?
Voici une autre approche pour essayer:
Dim values() As String Using objReader As New System.IO.StreamReader(fileLocation) Do While Not objReader.EndOfStream values = objReader.ReadLine().Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) For Each value As String In values value = value.Trim() If value.Length = 8 AndAlso value.All(Function(c) Char.IsDigit(c)) Then ListBox1.Items.Add(value) Exit For End If Next Loop End Using
Alors qu'est-ce qui manque exactement? Vous avez probablement besoin d'un compteur pour vérifier la consécutivité, non?
@Falcoalexander c'est exactement ce dont j'ai besoin
Ensuite, essayez de l'introduire dans votre clause IF et de la réinitialiser à zéro une fois que ce n'est pas numérique!
Je ne vois que 3 possibilités de "une séquence de 8 nombres consécutifs". 01234567, 12345678, 23456789 Est-ce ce que vous recherchez? Ou cherchez-vous des 8 chiffres de suite.