Mot trouvé dans fichier texte. Affichage dans textbox "Jusqu'à ligne vide".

Résolu
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012 - 18 déc. 2011 à 14:59
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012 - 21 déc. 2011 à 15:52
Bonjour,

Je me suis fabriqué un petit prog avec en haut un DateTimePicker.
Un textbox juste en dessous, et un bouton ajouter évènement.
Je tape donc mon évènement dans mon textbox, je valide et sa m'écris dans un fichier texte : date selectionné dans le DateTimePicker + texte écris dans le textbox.

Donc le logiciel vérifiera une fois (ou deux) par jours voir si un évènement est prévu ce jour, jusque là tout va bien.
Il detecte bien la date du jour et m'affiche ça dans un msgbox.
Seulement je ne parvient pas à ajouter des évènements multiligne, j'arrive uniquement à récupérer la ligne contenant la date recherché.

Voici le code :

        
Dim mot As String = Date.Now.Date 'le mot a chercher
        Dim tmp As String 'une variable temporaire
        Dim emplacement As String = "evenement.txt" 'l'emplacement du fichier

        FileOpen(1, emplacement, OpenMode.Input) 'on ouvre le fichier à analyser
        Do Until EOF(1) 'tant qu'on est pas à la fin du fichier:
            tmp = LineInput(1) 'on lis la ligne et on la stock dans la variable
            If ((InStr(tmp, mot)) > 0) Then 'on vérifie si le mot rechercher ne serais pas dans la ligne
                MsgBox(tmp) 'si oui alors on en fait part					
            End If

        Loop
        FileClose(1)


J'avais déjà rencontré un problème similaire mais dans un autre sens, mais je ne suis pas parvenu à l'adapter.
Comment pourrai-je adapter ceci ?

Dim depart = mot.IndexOf(vbCr & vbLf)
            messagebox.show(evenement.Substring(depart)


Pour qu'il face en sorte de m'afficher dans le msgbox, la date recherché + mon message (donc ma variable "tmp") jusqu'à une ligne vide, de sorte à ce que je puisse avoir des évènements multilignes.

Merci d'avance !

29 réponses

Utilisateur anonyme
19 déc. 2011 à 00:12
Parce que cette référence est obsolète.
Elle n'existe que pour assurer une compatibilité.
Autant te mettre tout de suite au langage natif du .NET
Enfin c'est juste un conseil pas une obligation
0
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
19 déc. 2011 à 00:16
C'est dur à comprendre tout ça j'ai mis les mains dedans pour la première fois il y vraiment très peu de temps, et c'est vrai que depuis peu je passe beaucoup plus de temps qu'au début.
Je garde tout mes programmes, et quand j'ai besoin de quelque chose que j'ai déjà fait, j'ouvre le programme approprié, c'est peut-être pas la meilleurs façon d'apprendre mais petit à petit je peux coder sans avoir besoin de revenir sur les anciens projets.

Mais il faut l'avouer, sans les réponses aux questions qui me bloques, j'aurai déjà abandonner!

Je me rassure en me disant que mes questions servirons à d'autre, surtout qu'en général vous résolvez mes problèmes, merci pour votre aide.
0
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
19 déc. 2011 à 00:18
Je peux résoudre quelques erreurs en important manuellement microsoft visual basic, est-ce la solution ?
0
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
19 déc. 2011 à 00:36
En important Microsoft Visual Basic en haut du code je n'ai plus qu'une erreur:

Erreur 1 La résolution de surcharge a échoué, car aucun 'Show' accessible ne peut être appelé avec ces arguments :
'Public Shared Function Show(owner As System.Windows.Forms.IWin32Window, text As String) As System.Windows.Forms.DialogResult' : Option Strict On interdit les conversions implicites de 'String' en 'System.Windows.Forms.IWin32Window'.
'Public Shared Function Show(owner As System.Windows.Forms.IWin32Window, text As String) As System.Windows.Forms.DialogResult' : Option Strict On interdit les conversions implicites de 'Microsoft.VisualBasic.MsgBoxStyle' en 'String'.
'Public Shared Function Show(text As String, caption As String) As System.Windows.Forms.DialogResult' : Option Strict On interdit les conversions implicites de 'Microsoft.VisualBasic.MsgBoxStyle' en 'String'. C:\Users\Laura\Desktop\LecteurTakam\LecteurTakam\Form1.vb 116 29 LecteurTakam
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
19 déc. 2011 à 02:01
J'ai remplacer par msgbox et plus d'erreur..
Mes soucis le plus important et comment supprimer la ligne du fichier texte affiché comme évènement dans un msgbox.
Le second serai optionnellement de pouvoir faire ces évènements multiligne.
0
Utilisateur anonyme
19 déc. 2011 à 17:47
ucfoutu te l'as déjà signalé; ton approche du problème n'est pas la bonne.
Mieux vaut mettre en oeuvre une base de données (un simple xml suffirait dans ton cas).
Au pire une List(Of String) de manière à ordonner tes lignes et de pouvoir réaliser des opérations comme une suppression, un remplacement, une recherche de mot etc...
0
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
19 déc. 2011 à 23:00
Hello,

Justement ce que je cherchai à faire était de supprimé du fichier texte le message affiché dans le textbox.

Faut que j'apprenne des nouveaux trucs pour mettre en pratique ce que vous me dites.

Cordialement.
0
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
21 déc. 2011 à 14:45
Bonjour,

Je reviens à l'affût suite à un nouveau problème.
Comme vous me l'avez conseillé, j'ai revu la façon de gérer les évènements et j'ai donc choisi de faire un fichier par jour.
Seulement, dans mon message box lors d'un evenement, les accents sont remplacé par d'autres caractères.
Voyez vous d'où viens ce problème Messieurs ?

Imports System.IO

Public Class Form1

    Dim key As Microsoft.Win32.RegistryKey


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CheckBox1.Checked = True
        ' Création d'une instance de StreamReader pour permettre la lecture de notre fichier
        Dim monStreamReader As StreamReader = New StreamReader("Evenement" & DateTimePicker1.Text)
        Dim ligne As String

        If System.IO.Directory.Exists("Evenement") = False Then
            System.IO.Directory.CreateDirectory("Evenement")
        End If

        If System.IO.File.Exists("Evenement" + DateTimePicker1.Text) Then
            Try
                'Lecture de toutes les lignes et affichage de chacune sur la page

                ligne = monStreamReader.ReadToEnd
                Select Case MsgBox(DateTimePicker1.Text & vbNewLine & ligne & vbNewLine & vbNewLine & "Voulez-vous supprimer l'évènement?", MsgBoxStyle.YesNo)
                    Case vbYes
                        monStreamReader.Close()
                        Dim mon_fichier As New FileInfo("Evenement" & DateTimePicker1.Text)
                        mon_fichier.Delete()
                    Case vbNo
                        monStreamReader.Close()
                End Select


            Catch ex As Exception

                'Code exécuté en cas d'exception
                MsgBox(ex.Message)

            End Try
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try

            'Instanciation du StreamWriter avec passage du nom du fichier 
            Dim monStreamWriter As StreamWriter = New StreamWriter("Evenement" & DateTimePicker1.Text, True, System.Text.Encoding.ASCII)

            'Ecriture du texte dans votre fichier
            monStreamWriter.WriteLine(TextBox1.Text)

            'Fermeture du StreamWriter (Trés important)
            monStreamWriter.Close()

        Catch ex As Exception

            'Code exécuté en cas d'exception
            MsgBox(ex.Message)

        End Try
        TextBox1.Clear()
    End Sub

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

        If CheckBox1.Checked = True Then
            key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
            key.SetValue("InAdvance", Application.StartupPath + "\InAdvance.exe")
        ElseIf CheckBox1.Checked = False Then
            key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
            key.DeleteValue("InAdvance")
        End If
    End Sub
End Class
0
KcHeY Messages postés 261 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 22 septembre 2012
21 déc. 2011 à 15:52
Bonsoir,

Résolu par ceci :

Dim monStreamWriter As StreamWriter = New StreamWriter(dossierlocal & DateTimePicker1.Text, True, System.Text.Encoding.UTF8)


Merci encore pour votre aide et bonne soirée.
0
Rejoignez-nous