Problème Listview
FerméNICK337 Messages postés 9 Date d'inscription vendredi 3 juillet 2015 Statut Membre Dernière intervention 13 décembre 2023 - 7 nov. 2023 à 23:23
3 réponses
29 oct. 2023 à 17:30
Peux-tu montrer ce que tu as essayé ?
Aussi, quel est le point de blocage (mise en écoute, réception, traitement, autre) ?
Car selon ta description, un MaChaine.Split(...) serait suffisant.
31 oct. 2023 à 19:56
Désolé pour le délai de réponse.
Le premier truc qui me chagrine c'est que ton code de découpage est posé après ton while true.
Ensuite, si tu veux que ton code fasse quelque chose, il faut plutôt déporter ton code de découpage dans une fonction et appeler cette fonction à la réception de ta chaine via le socket.
Concernant le fait que tu va passer par un thread, il faudra que tu utilise un Me.Invoke (AdressOf ...) pour faire la mise à jour, car la mise à jour de contrôles dans un autre thread que celui principal est interdite (ou peut provoquer un comportement inattendu).
Autre point, pourquoi créer plusieurs variables t* au lieu d'utiliser le tableau fourni par Split ? Cela te permettre de réduire ton code en utilisant des boucles For.
Voilà pour un premier tour.
7 nov. 2023 à 23:23
Bonjour, voici un exemple de code qui pourrait vous aider à résoudre votre problème. Ce code crée un serveur TCP qui écoute sur le port 8080. Lorsqu’il reçoit des données, il les divise en utilisant “||” comme séparateur et les ajoute à un ListView.
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim server As New TcpListener(8080)
server.Start()
Dim client As TcpClient = server.AcceptTcpClient()
Dim stream As NetworkStream = client.GetStream()
Dim bytes(client.ReceiveBufferSize) As Byte
stream.Read(bytes, 0, CInt(client.ReceiveBufferSize))
Dim data As String = Encoding.ASCII.GetString(bytes)
Dim items As String() = data.Split(New String() {"||"}, StringSplitOptions.None)
For Each item As String In items
ListView1.Items.Add(item)
Next
client.Close()
server.Stop()
End Sub
End Class
Veuillez noter que ce code est très basique et ne gère pas les erreurs ou les exceptions. Vous devrez l’adapter à vos besoins spécifiques. De plus, ce code bloque l’interface utilisateur jusqu’à ce qu’une connexion soit établie, ce qui n’est généralement pas souhaitable dans une application réelle. Vous voudrez peut-être exécuter le code du serveur dans une autre thread pour éviter ce problème. Bien à vous
Modifié le 31 oct. 2023 à 20:48
Bonsoir, oui bien sur voici le code ( je suis débutant le code est donc pas très adapté car j'aurrais peut être pu utiliser des boucles )