Bonjour,

je reçois du texte ASCII par un port série, et je souhaite effectuer un traitement sur ce texte, (c'est à dire remplacer certains caractère par " ")

donc voici ma méthode :

je déclare un delegate dans ma classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Delegate Sub _Affiche_ASCII(ByVal donnee As String)
ensuite mon datareceived du port série :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
'Evènement se déclenchant lors de l'arrivée de données sur le port RS232
    Private Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived
        Dim nb_octet As Integer = RS232.BytesToRead ' on récupère le nombre d'octet présent dans le tampon
        Dim trame(nb_octet - 1) As Byte ' Tableau acceuillant les données au format byte
 
        RS232.Read(trame, 0, nb_octet) 'on lit le port
 
        donnee = System.Text.Encoding.ASCII.GetString(trame) ' on récupère les données au format ASCII
 
        'L'évènement DataReceived se situe sur un thread différent que le form, nous devons donc appelé un délégué pour afficher le résultat à l'écran
        Me.Invoke(New _Affiche_ASCII(AddressOf Affiche_ASCII), donnee)
 
    End Sub
et ma fonction Affiche_ASCII :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
  Private Sub Affiche_ASCII(ByVal donnee As String)
        TextBox2.Text = TextBox2.Text & donnee 'affecte a la textbox2 les données recu à modifier
        For Each ligne As String In TextBox2.Text
            Try
                attente = TextBox2.Text.Replace(Chr(10), ControlChars.CrLf).Replace("W1", "").Replace("W1", "").Replace("W1E", "").Replace("W1E", "").Replace("W0F", "").Replace("E", "").Replace("F", "") 'attente est la variable qui contient les données propre, avec les caractère remplacé
                TextBox1.Text = attente 'j affiche le tout à l'utilisateur
            Catch ex As Exception
 
            End Try
        Next
sur ma form j'ai deux Textbox :
Textbox2.Text (visible=false) qui reçoit les donnée brut sans remplacement de caractère par " "
et Textbox1.Text visible pour l'utilisateur qui affiche les donnée avec les caractère remplacé

Je trouve ma méthode un peu lourde, voyer une solution pour raccourcir tout ca ?