none
endofstreamexception n'a pas été gérée RRS feed

  • Question

  • Bonjour à tous

    Je sèche carrément sur le problème suivant: J'ai ajouté un textbox sur un windows form de mon application, effectué dans le code les modifications nécessaires relatives au nouveau textbox et débugué.

    L'application s'ouvre correctement, les nouveaus fichiers ainsi créés se sauvegardent et s'ouvrent normalement, mais lorsque j'essaie d'ouvrir un fichier sauvegardé, créé avant cette modification, je reçois le message suivant:

    "txtN28.Text = FileReader.ReadStream (il s'agit du nouveau textbox en surbrillance)

    "endofstreamexception n'a pas été gérée. Impossible de lire au-delà de la fin du flux."

    L'erreur est donc bien identifiée. Par contre je ne trouve pas la formule pour que le processus d'ouverture de mon vieux fichier ne tienne pas compte de la présence de ce dernier textbox.

    Quelqu'un parmi vous a-t-il une suggestion à me fournir?

    Merci par avance.

    mardi 14 octobre 2014 18:29

Réponses

  • Bonjour Richard

    Merci de répondre si vite. En effet mon exposé ne permettait pas de comprendre clairement le problème. Entretemps je viens de réaliser que j'avais oublié d'insérer la clause "catch ex as exception" avec sa msgbox. Le fichier se charge donc, il n'y a plus qu'à entrer la donnée du nouveau textbox et de sauvegarder la nouvelle version.

    Désolé de vous avoir fait perdre du temps.

    A toutes fins utiles, ci-dessous mon code Open Data abrégé aux deux derniers textboxes, le n°28 venant d'être ajouté.

      Private Sub mnuOpenData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuOpenData.Click
            dlgOpenData.InitialDirectory = "C:\Program Files\AppName\Project File (metric units)"
            If dlgOpenData.ShowDialog() = Windows.Forms.DialogResult.OK Then
                Dim fleApp As FileStream = New FileStream(dlgOpenData.FileName, FileMode.Open, FileAccess.Read, FileShare.Read)
                Dim AppReader As BinaryReader = New BinaryReader(fleApp)
                Try
                    ..........
                    txtN27.Text = AppReader.ReadString()
                    txtN28.Text = AppReader.ReadString()
                Catch ex As Exception
                    MsgBox(ex.ToString)   'peut être remplacé par une information à l'utilisateur
                Finally
                    AppReader.Close()
                    fleApp.Close()
                End Try
            End If
        End Sub
        

    Cordialement

    Zwinvoorde

    mercredi 15 octobre 2014 11:29

Toutes les réponses

  • Bonjour,

    Je ne suis pas sur d'avoir tout compris mais pour lire le contenu d'un fichier, le plus simple est d'utiliser File :

    Dim contenu = File.ReadAllText("nomduFichier")


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 15 octobre 2014 07:17
  • Bonjour Richard

    Merci de répondre si vite. En effet mon exposé ne permettait pas de comprendre clairement le problème. Entretemps je viens de réaliser que j'avais oublié d'insérer la clause "catch ex as exception" avec sa msgbox. Le fichier se charge donc, il n'y a plus qu'à entrer la donnée du nouveau textbox et de sauvegarder la nouvelle version.

    Désolé de vous avoir fait perdre du temps.

    A toutes fins utiles, ci-dessous mon code Open Data abrégé aux deux derniers textboxes, le n°28 venant d'être ajouté.

      Private Sub mnuOpenData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuOpenData.Click
            dlgOpenData.InitialDirectory = "C:\Program Files\AppName\Project File (metric units)"
            If dlgOpenData.ShowDialog() = Windows.Forms.DialogResult.OK Then
                Dim fleApp As FileStream = New FileStream(dlgOpenData.FileName, FileMode.Open, FileAccess.Read, FileShare.Read)
                Dim AppReader As BinaryReader = New BinaryReader(fleApp)
                Try
                    ..........
                    txtN27.Text = AppReader.ReadString()
                    txtN28.Text = AppReader.ReadString()
                Catch ex As Exception
                    MsgBox(ex.ToString)   'peut être remplacé par une information à l'utilisateur
                Finally
                    AppReader.Close()
                    fleApp.Close()
                End Try
            End If
        End Sub
        

    Cordialement

    Zwinvoorde

    mercredi 15 octobre 2014 11:29