Imports System.IO Public Class Form1 Dim Arret As Boolean Dim tmp As String 'variable pour stocker chaque ligne du fichier Dim mot As String 'variable pour stocker le mot à rechercher Dim place1 As String 'variable pour socker l'emplacement du fichier Dim scan As StreamReader 'variable de lecture fichier Dim strLine As String 'variable de lecture fichier Dim objMessage As Object Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Clear() mot = TextBox1.Text 'stock le mot à rechercher dans la variable place1 = TextBox2.Text 'stock le chemin du fichier If TextBox1.Text = "" Then 's'assure qu'il y a bien un mot à chercher MsgBox("Il n'y a rien à chercher!") ElseIf place1 = "" Then 's'assure qu'il y a bien un emplacement pour le mot a rechercher MsgBox("Aucun fichier n'a été sélectionné") Else 'si tous est ok on continue Arret = False Do While Arret = False Call recherche() 'System.Windows.Forms.Application.DoEvents() 'ou Application.DoEvents() Loop End If 'End if de test textbox vide MsgBox("Fin") End Sub 'Sub de gestion envois email Sub email() Dim messageHTML On Error GoTo errorHandler objMessage = CreateObject("CDO.Message") objMessage.Subject = "Alerte ScanFile: " & mot objMessage.From = "adressmail" 'adresse mail de l'expéditeur n'est pas obligatoire objMessage.To = "adressmail" 'Email du destinataire doit-être correct ici objMessage.TextBody = "Bonjour," & vbCrLf & vbCrLf & "Le mot " & mot & " a été trouvé dans le fichier ci-joint." & vbCrLf & vbCrLf & "Cordialement," messageHTML = "Ceci est un message en HTML" objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "serveur SMTP" objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objMessage.Configuration.Fields.Update() objMessage.AddAttachment(place1) 'On ajoute la piéce jointe objMessage.Send() MsgBox("Le fichier contient " & mot & vbCrLf & vbCrLf & "Un mail d'alerte a été envoyé!") 'si erreur on sort de la procédure Exit Sub errorHandler: 'description de l'erreur survenue MsgBox(Err.Description) End Sub Private Sub recherche() ListBox1.Items.Clear() scan = New StreamReader(place1) 'Pass the file path and the file name to the StreamReader constructor. strLine = scan.ReadLine 'Lire la 1ere ligne du fichier et la stocker dans "strline" Do While Not strLine Is Nothing 'Continue la lecture tant que "strline" n'est pas vide donc que l'on n'a pas atteint la fin du fichier. If ((InStr(strLine, mot)) > 0) Then 'on vérifie si le mot recherché est dans la ligne ListBox1.Items.Add(strLine) 'on ajoute la ligne dans la listbox Call email() Arret = True Else ListBox1.Items.Add(strLine) 'on ajoute la ligne dans la listbox End If 'End if à l'interieur de la boucle "DO LOOP" strLine = scan.ReadLine 'lit la ligne suivante. Loop scan.Close() 'ferme le fichier End Sub 'Sub de commande arret boucle Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Arret = True End Sub End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOption Strict On Option Explicit On Imports System.IO Imports System.Threading Public Class Form1 Dim Arret As Boolean Dim tmp As String 'variable pour stocker chaque ligne du fichier Dim mot As String 'variable pour stocker le mot à rechercher Dim place1 As String 'variable pour socker l'emplacement du fichier Dim scan As StreamReader 'variable de lecture fichier Dim strLine As String 'variable de lecture fichier Dim objMessage As Object Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Interval = 10000 'timer de 10 sec ListBox1.Items.Clear() mot = TextBox1.Text 'stock le mot à rechercher dans la variable place1 = TextBox2.Text If TextBox1.Text = "" Then 's'assure qu'il y a bien un mot à chercher MsgBox("Il n'y a rien à chercher!") ElseIf place1 = "" Then 's'assure qu'il y a bien un emplacement pour le mot a rechercher MsgBox("Aucun fichier n'a été sélectionné") Else 'si tous est ok on continue Arret = False Do Until Arret = True Application.DoEvents() Timer1.Enabled = True ProgressBar1.Increment(1) Loop End If 'End if de test textbox vide MsgBox("Fin") End Sub Private Sub recherche() Handles Timer1.Tick ListBox1.Items.Clear() scan = New StreamReader(place1) 'Pass the file path and the file name to the StreamReader constructor. strLine = scan.ReadLine 'Lire la 1ere ligne du fichier et la stocker dans "strline" Do While Not strLine Is Nothing And Arret = False 'Continue la lecture tant que "strline" n'est pas vide donc que l'on n'a pas atteint la fin du fichier. If ((InStr(strLine, mot)) > 0) Then 'on vérifie si le mot recherché est dans la ligne ListBox1.Items.Add(strLine) 'on ajoute la ligne dans la listbox email() 'vers sub "email" 'Exit Sub Else ListBox1.Items.Add(strLine) 'on ajoute la ligne dans la listbox End If 'End if à l'interieur de la boucle "DO LOOP" strLine = scan.ReadLine 'lit la ligne suivante. Loop scan.Close() 'ferme le fichier ProgressBar1.Value = 0 End Sub 'Sub de gestion envois email Sub email() Dim messageHTML objMessage = CreateObject("CDO.Message") objMessage.Subject = "Alerte: " & mot objMessage.From = "adressmail" 'adresse mail de l'expéditeur n'est pas obligatoire objMessage.To = "adressmail" 'Email du destinataire doit-être correct ici objMessage.TextBody = "Bonjour," & vbCrLf & vbCrLf & "Le mot " & mot & " a été trouvé dans le fichier ci-joint." & vbCrLf & vbCrLf & "Cordialement," messageHTML = "Ceci est un message en HTML" objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp" objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objMessage.Configuration.Fields.Update() objMessage.AddAttachment(place1) 'On ajoute la piéce jointe objMessage.Send() MsgBox("Le fichier contient " & mot & vbCrLf & vbCrLf & "Un mail d'alerte a été envoyé!") Arret = True fin() End Sub 'Sub de commande arret boucle Private Sub fin() Handles Button2.Click Arret = True ProgressBar1.Value = 0 Timer1.Enabled = False End Sub 'Sub d'effacement de listBox1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click ListBox1.Items.Clear() End Sub End Class