Bonjour, j'ai amélioré un peu la procédure ReadOutput :
J'obtiens ceci :
Ligne 1 : Message parasite 1
Ligne 2 : Message parasite 2
....
Ligne n : -
Ligne n+1 : --
Ligne n+20 : --------------------
...etc
Il ne me reste plus qu'a filtrer les messages parasites.
Le code ci-dessous n'est pas très propre mais ça fonctionne correctement.
Un grand merci à ACTIVE_CS et rv26t. Je n'y serais jamais arrivé sans vous .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 Private Sub readOutput() Dim buffer As Char() = New Char(0) {} Dim BufferMessage As String = "" Dim DetectCr As Boolean = False Dim DetectLf As Boolean = False Dim DetectCrLf As Boolean Dim PosChar As Integer = 0 While Not MonProcess.HasExited MonProcess.StandardOutput.Read(buffer, 0, 1) ' Debug.Print(buffer) Dim ascii As Integer ascii = System.Text.ASCIIEncoding.ASCII.GetBytes(buffer)(0) 'Debug.Print(ascii.ToString) BufferMessage += buffer Debug.Print(BufferMessage) Dim VbCr As Byte() = {13} Dim VbLf As Byte() = {10} If buffer = System.Text.ASCIIEncoding.ASCII.GetChars(VbCr) Then DetectCr = True PosChar = 0 End If If buffer = System.Text.ASCIIEncoding.ASCII.GetChars(VbLf) Then DetectLf = True DetectCrLf = False If DetectCr And PosChar = 1 Then If DetectLf Then DetectCrLf = True PosChar = 0 End If DetectCr = False Else End If If DetectCrLf Then BufferMessage = "" End If PosChar += 1 End While End Sub
Je passe en résolue.
Partager