IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

écrire dans un fichier


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 94
    Points : 41
    Points
    41
    Par défaut écrire dans un fichier
    Bonsoir à tous,

    Depuis hier, je suis dessus...
    Je réceptionne des données sur le port série et souhaite les enregistrer dans un fichier...
    Pour mes essais , j'avais mis tous les boutons sur la form principale, tout fonctionnait correctement.
    J'ai eu la mauvaise idée, pour l'instant, de placer un seul bouton qui appelle une form2 qui va permettre à l'utilisateur de choisir son fichier et l'intervalle de temps qu'il souhaite pour enregistrer les données....

    déclaration de variables en public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class form1
     Public sfd As New SaveFileDialog
        Public fichiersauvegarde As String
        Public SaveFichier As String = Path.GetFileName(sfd.FileName)
        Public ecriture As StreamWriter
    Bouton qui ouvre la form2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Bt_Start_Rec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_Sart_Rec.Click
            form2.Show()
        End Sub
    Code, dans fom2, qui permet de saisir le nom du fichier de sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Form1.sfd.Title = "Créer votre fichier de sauvegarde"
            Form1.sfd.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
            Form1.sfd.DefaultExt = ".txt"
            Form1.sfd.Filter = "Fichier texte (.txt)|*.txt"
     
            If Form1.sfd.ShowDialog = 1 Then
                Dim SaveFichier As String = Path.GetFileName(Form1.sfd.FileName)
                TxtBox_Chemin.Text = Path.GetFullPath(SaveFichier)
                Form1.fichiersauvegarde = SaveFichier 'je passe par une variable pour mes tests'
                MsgBox(SaveFichier)
            End If
    Une fois le fichier saisi, j'ai un bouton, toujours sur la form2, qui "lance" l'enregistrement et ferme la form2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub Bt_Debut_Enregistrement_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_Debut_Enregistrement.Click
            MsgBox("interval enregistrements Bt_EnregistrementClick : " & Form1.RecTimer.Interval)
     
            MsgBox(Form1.fichiersauvegarde) 'msgbox de test'
            Form1.RecTimer.Enabled = True
            Form1.RecTimer.Start()
            MsgBox(Form1.RecTimer.Enabled)
            Me.Close()
        End Sub
    Code du timer d'enregistrement qui se trouve sur la form1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Sub RecTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RecTimer.Tick
            MsgBox("valeur de rec dans rectimer_tick : " & rec) 'test ok'
            RecTimer.Interval = EnregistrementDonnees.interv 'intervalle affiché est bien celui choisi dans la form2
            MsgBox("tic") 'affichage OK'
            MsgBox("SaveFichier d'enregistrement : " & fichiersauvegarde) 'le nom du fichier saisi dans la form2 apparaît bien là'
     
            ecriture.WriteLine( "les données récupérées et à écrire dans le fichier txt) 'ICI ERREUR'
        End Sub
    l'erreur est donnée sur la ligne "ecriture.WriteLine"
    L'exception NUllReference Exception n'a pas été gérée . La référence d'objet n'est pas définie à une instance d'un objet.
    Il semblerait que la déclaration du streamwriter ne soit pas correcte. Pour rappel, je l'ai placé en Public dans la form1

    J'ai bien essayé de la placer dans la form2 et la rappeler en form1... bref, là je suis vraiment dans une impasse....
    Merci à vous
    Lio

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Points : 6
    Points
    6
    Par défaut StreamWriter non instancié
    Salut,

    il me semble que ta variable : Public ecriture As StreamWriter, n'est pas correctement instanciée.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public (meilleur Friend) ecriture as new StreamWriter(Path.GetFullPath(SaveFichier))
    Mais peut être cela n'apparaît pas dans le code de ton message

    A+

Discussions similaires

  1. Créer et écrire dans un fichier.txt
    Par Furius dans le forum VBScript
    Réponses: 11
    Dernier message: 16/05/2016, 12h27
  2. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  3. [FTP] Lire et écrire dans un fichier
    Par dj-julio dans le forum Langage
    Réponses: 49
    Dernier message: 12/01/2006, 11h59
  4. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48
  5. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo