Bonjour,
J'ai réaliser une application VB.net avec VB Express 2010 et j'ai tester sur des fréquences envoyées ver un récepteur qui est reliées avec mon PC avec Câble RS32 tout d'abord je scanne la référence pour afficher les listes des fréquences à tester (dans un textBox en jaune pour indiquer qu'ils sont en Ecoute) ensuite je clique sur "btnstart" pour commencer le test ( chaque fréquence détecter sera supprimer de la liste jaune et déplacer vert textbox en vert) et ainsi de suite: le problème dans la suppression de la liste en jaune et l'ecriture dans liste vert et que lorsque je lire directement de la port série et je fais les traitements. il y a eurreur dans ce code : Gbok.Text = Gbok.Text & ligne & Chr(13) ---> dans "Sub inserok(ByVal cordonné As String) " aide moi SVP Voici le code :
Imports System.Data.SqlClient
Imports System.IO.Ports
Public Class Testcable
Dim myPort As Array
Public connexion As New SqlConnection(" Data source=WSTN3T506\SQLEXPRESS; initial catalog = leoni ; user id=SA ; password=leoni123 ")
Dim x As String = Scanner.ref_cable
Dim TabMissing(100) As String
Private Sub Testcable_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myPort = IO.Ports.SerialPort.GetPortNames()
Dim k As Integer
For k = 0 To UBound(myPort)
cmbComport.Items.Add(myPort(k))
Next
cmbComport.Text = cmbComport.Items.Item(0)
Dim i As Integer = 0
Dim j As Integer = 0
Try
Dim requete As String = "select * from cable where ref_cable='" & x & "'"
Dim sqlcmd As New SqlCommand(requete, connexion)
Try
connexion.Open()
Dim MonReader As SqlDataReader = sqlcmd.ExecuteReader()
Do While MonReader.Read()
Dim xy As String = MonReader("num_switch").ToString
TabMissing(i) = xy
i = i + 1
Loop
Catch ex As Exception
MsgBox(ex.Message)
End Try
Catch ex As Exception
MsgBox(ex.Message)
End Try
connexion.Close()
Do While ((j < TabMissing.Length) And (TabMissing(j) <> ""))
Dim requete As String = "select * from Borde where num_switch='" & TabMissing(j) & "'"
Dim sqlcmd As New SqlCommand(requete, connexion)
connexion.Open()
Dim MonReader As SqlDataReader = sqlcmd.ExecuteReader()
If MonReader.Read() Then
Dim f As String = MonReader("cordonne").ToString
Dim h As String = MonReader("fre_on").ToString
TabMissing(j) = f
FileOpen(1, "D:\PFE\mes text\textmissing.txt", OpenMode.Append)
PrintLine(1, f)
FileClose(1)
GrMissing.Text = GrMissing.Text & f & Chr(13)
End If
j = j + 1
connexion.Close()
Loop
End Sub
Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
SerialPort1.Close()
Scanner.Show()
Me.Close()
End Sub
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
SerialPort1.PortName = cmbComport.Text 'Set SerialPort1 to the selected COM port at startup
SerialPort1.BaudRate = 57600 'Set Baud rate to the selected value on
'Other Serial Port Property
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.DataBits = 8
SerialPort1.Open() 'Open our serial port
SerialPort1.ReadTimeout = 500
SerialPort1.WriteTimeout = 500
End Sub
Function existemissingtext(ByVal cordoné As String) As Integer
Dim ligne As String
Dim nbrLigne As Integer = 0
Dim existe As Integer = 0
FileOpen(2, "D:\PFE\mes text\textmissing.txt", OpenMode.Input)
While ((EOF(2) <> True) And (existe <> True))
nbrLigne = nbrLigne + 1
ligne = LineInput(2)
If (ligne = cordoné) = True Then
existe = 1
End If
End While
FileClose(2)
Return existe
End Function
Function existeoktext(ByVal cordoné As String) As Integer
Dim ligne As String
Dim nbrLigne As Integer = 0
Dim existe As Integer = 0
FileOpen(2, "D:\PFE\mes text\textok.txt", OpenMode.Input)
While ((EOF(2) <> True) And (existe <> True))
nbrLigne = nbrLigne + 1
ligne = LineInput(2)
If (ligne = cordoné) = True Then
existe = 1
End If
End While
FileClose(2)
Return existe
End Function
Sub inserok(ByVal cordonné As String)
FileOpen(2, "D:\PFE\mes text\textok.txt", OpenMode.Append)
PrintLine(2, cordonné)
FileClose(2)
Dim ligne As String
'Gbok.c()
'Gbok.clear()
FileOpen(3, "D:\PFE\mes text\textok.txt", OpenMode.Input)
While EOF(3) <> True
' nbrLigne = nbrLigne + 1
ligne = LineInput(3)
Gbok.Text = Gbok.Text & ligne & Chr(13)
End While
FileClose(3)
End Sub
Sub inserextra(ByVal cordonné As String)
FileOpen(2, "D:\PFE\mes text\textextra.txt", OpenMode.Append)
PrintLine(2, cordonné)
FileClose(2)
Dim ligne As String
GbExtra.Text = ""
FileOpen(3, "D:\PFE\mes text\textextra.txt", OpenMode.Input)
While EOF(3) <> True
' nbrLigne = nbrLigne + 1
ligne = LineInput(3)
GbExtra.Text = GbExtra.Text & ligne & Chr(13)
End While
FileClose(3)
End Sub
Sub insermissing(ByVal cordonné As String)
FileOpen(2, "D:\PFE\mes text\textmissing.txt", OpenMode.Append)
PrintLine(2, cordonné)
FileClose(2)
Dim ligne As String
GrMissing.Text = ""
FileOpen(3, "D:\PFE\mes text\textmissing.txt", OpenMode.Input)
While EOF(3) <> True
' nbrLigne = nbrLigne + 1
ligne = LineInput(3)
GrMissing.Text = GrMissing.Text & ligne & Chr(13)
End While
FileClose(3)
End Sub
Sub vider(ByVal chemin As String)
FileOpen(6, "D:\PFE\mes text\" & chemin & ".txt", OpenMode.Output) ' OpenMode.Append)
While EOF(6) <> True
PrintLine(6, "")
End While
FileClose(6)
End Sub
Sub supprimémissing(ByVal cordonné As String)
Dim ligne As String
GrMissing.Text = ""
FileOpen(2, "D:\PFE\mes text\textmissing.txt", OpenMode.Input)
While EOF(2) <> True
ligne = LineInput(2)
If ligne = cordonné Then
MsgBox("supprimé")
ElseIf ligne <> "" Then
FileOpen(3, "D:\PFE\mes text\temp.txt", OpenMode.Append)
PrintLine(3, ligne)
FileClose(3)
End If
End While
FileClose(2)
vider("textmissing")
copier("textmissing") ', fichiertemp)
Dim ligne2 As String
FileOpen(4, "D:\PFE\mes text\textmissing.txt", OpenMode.Input)
While EOF(4) <> True
' nbrLigne = nbrLigne + 1
ligne2 = LineInput(4)
GrMissing.Text = GrMissing.Text & ligne2 & Chr(13)
End While
FileClose(4)
End Sub
Sub suppriméok(ByVal cordonné As String)
Dim ligne As String
Gbok.Text = ""
FileOpen(2, "D:\PFE\mes text\textok.txt", OpenMode.Input)
While EOF(2) <> True
ligne = LineInput(2)
If ligne = cordonné Then
MsgBox("supprimé")
ElseIf ligne <> "" Then
FileOpen(3, "D:\PFE\mes text\temp.txt", OpenMode.Append)
PrintLine(3, ligne)
FileClose(3)
End If
End While
FileClose(2)
vider("textok")
copier("textok") ', fichiertemp)
Dim ligne2 As String
FileOpen(4, "D:\PFE\mes text\textok.txt", OpenMode.Input)
While EOF(4) <> True
' nbrLigne = nbrLigne + 1
ligne2 = LineInput(4)
Gbok.Text = Gbok.Text & ligne2 & Chr(13)
End While
FileClose(4)
End Sub
Sub suppriméExtra(ByVal cordonné As String)
Dim ligne As String
GbExtra.Text = ""
FileOpen(2, "D:\PFE\mes text\textExtra.txt", OpenMode.Input)
While EOF(2) <> True
ligne = LineInput(2)
If ligne = cordonné Then
MsgBox("supprimé")
ElseIf ligne <> "" Then
FileOpen(3, "D:\PFE\mes text\temp.txt", OpenMode.Append)
PrintLine(3, ligne)
FileClose(3)
End If
End While
FileClose(2)
vider("textExtra")
copier("textExtra") ', fichiertemp)
Dim ligne2 As String
FileOpen(4, "D:\PFE\mes text\textExtra.txt", OpenMode.Input)
While EOF(4) <> True
' nbrLigne = nbrLigne + 1
ligne2 = LineInput(4)
GbExtra.Text = GbExtra.Text & ligne2 & Chr(13)
End While
FileClose(4)
End Sub
Sub copier(ByVal fichier1 As String)
Dim ligne As String
FileOpen(4, "D:\PFE\mes text\temp.txt", OpenMode.Input)
FileOpen(5, "D:\PFE\mes text\" & fichier1 & ".txt", OpenMode.Append)
While EOF(4) <> True
ligne = LineInput(4)
PrintLine(5, ligne)
End While
FileClose(4)
FileClose(5)
vider("temp")
End Sub
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
SerialPort1.Close()
MsgBox("votre cable valide ")
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim fré As String
Dim ByteArr(SerialPort1.ReadBufferSize) As Byte
Dim NbBytesRecu As Integer
Dim i As Integer
Dim BytesEnString As String = ""
'Tempo pour laisser le temps à la trame d'arriver
Threading.Thread.Sleep(200)
'Nombre de bytes reçus
NbBytesRecu = SerialPort1.Read(ByteArr, 0, SerialPort1.ReadBufferSize)
'Chainage des bytes reçus
For i = 0 To NbBytesRecu - 1
BytesEnString = BytesEnString & ByteArr(i)
Next
fré = BytesEnString
Dim requete As String = "select * from Borde"
Dim sqlcmd As New SqlCommand(requete, connexion)
connexion.Open()
Dim MonReader As SqlDataReader = sqlcmd.ExecuteReader()
Do While MonReader.Read()
Dim cordonné As String = MonReader("cordonne").ToString
Dim fré_on As String = MonReader("fre_on").ToString
Dim fré_off As String = MonReader("fre_off").ToString
If fré = fré_on Then
If existemissingtext(cordonné) = 1 Then
MsgBox("vert " & cordonné & " ")
inserok(cordonné)
supprimémissing(cordonné)
Else
inserextra(cordonné)
MsgBox("rouge " & cordonné & " ")
End If
ElseIf fré = fré_off Then
If existeoktext(cordonné) = 1 Then
MsgBox("jaune " & cordonné & " ")
suppriméok(cordonné)
insermissing(cordonné)
Else
MsgBox("quiter rouge " & cordonné & " ")
suppriméExtra(cordonné)
End If
End If
Loop
connexion.Close()
FileClose(1)
vider("textok")
vider("textmissing")
vider("textextra")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i = 1 To 10
ListBox1.Text = "12524"
Next
End Sub
End Class
Partager