Aller au contenu
Règlement du forum ×
IPTV et arnaques ×

Asp.net, comment lire et écrire sur un fichier text avec VB.net


getule

Messages recommandés

Il est presque toujours nécessaire lors du développement d'un site web de pouvoir écrire et lire sur des fichiers.

La procédure pour y arriver est relativement simple avec vb.net et c#.

Il suffit de faire appel à la classe à deux classes StreamReader et StreamWriter de l'espace de noms System.IO

 

 

StreamReader permet de lire un flux de caractères depuis un fichier.

StreamWriter permet d'écrire un flux de caractères sur un fichier.

 

 

Passons au code:

Tout d'aobord importons System.IO

Imports System.IO

 

 

Procédure de lecture:



Sub LireFichier()
              Dim MonSR As StreamReader  'déclaration d'une instance StreamReader
       Try
           MonSR = File.OpenText(Server.MapPath("Monfichier.txt")) 'ouverture du fichier
           Me.Literal1.Text =MonSR.ReadToEnd ' affichage des données du fichier dans un Literal
          MonSR.Close() 'Fermeture du StreamReader (à ne pas oublier)
       Catch ex As Exception


       End Try
   End Sub


 

 

Procédure d'écriture:

Sub EcrireFichier()

       Dim MonSR As StreamWriter = New StreamWriter(Server.MapPath("Monfichier.txt"))
       Try


           MonSR.Write(Me.TextBox1.Text) 'Ecriture du contenu du textbox sur mon fichier

           MonSR.Close()


       Catch ex As Exception


       End Try
   End Sub

 

 

et voila, source: http://forum.diafdz.com/yaf_postst23_Asp-net--comment-lire-et-ecrire-sur-un-fichier-text-avec-VB-net.aspx

Lien vers le commentaire
Partager sur d’autres sites

I think you're not handling exceptions really well here especially with file manipulation.

 

Let's take the code below, if for some reason the File.OpenText or ReadToEnd throws an exception your MonSR.Close will never be reached and will keep the stream in an invalid state.

 

Another thing is to always initialize variables before using them, it's a good practice and it helps with debugging.

 


Sub LireFichier()
              Dim MonSR As StreamReader  'déclaration d'une instance StreamReader
       Try
           MonSR = File.OpenText(Server.MapPath("Monfichier.txt")) 'ouverture du fichier
           Me.Literal1.Text =MonSR.ReadToEnd ' affichage des données du fichier dans un Literal
          MonSR.Close() 'Fermeture du StreamReader (à ne pas oublier)
       Catch ex As Exception
       End Try
   End Sub

 

 

The best way to do this is to Close the file handle in a Finally block like below and it sure will free the stream.


Sub LireFichier()
              Dim MonSR As StreamReader = Nothing  'déclaration d'une instance StreamReader
       Try
           MonSR = File.OpenText(Server.MapPath("Monfichier.txt")) 'ouverture du fichier
           Me.Literal1.Text =MonSR.ReadToEnd ' affichage des données du fichier dans un Literal
       Catch ex As Exception
       Finally
           If MonSR IsNot Nothing Then
               MonSR.Close()
           End If

       End Try
   End Sub


 

Same below, if the Write fails we make sure to close the handle to the file

 

Sub EcrireFichier()

       Dim MonSR As StreamWriter = New StreamWriter(Server.MapPath("Monfichier.txt"))
       Try


           MonSR.Write(Me.TextBox1.Text) 'Ecriture du contenu du textbox sur mon fichier

       Catch ex As Exception
       Finally
           If MonSR IsNot Nothing Then
               MonSR.Close()
           End If

       End Try
   End Sub

 

Happy coding.

Lien vers le commentaire
Partager sur d’autres sites

vous avez effectivement raison d'instancier le nouveau objet StreamReader et StreamWriter à l'interieur de try car pour une quelconque raison qui empêche la liaison au fichier, l'exception n'est pas portée. to^^^^ois, vous n'avez pas raison quand vous posez une condition pour finally alors que le catch permet ceci directement. donc je me rectifie :


[left][color=#000000][font=Consolas]Sub LireFichier()[/font][/color]
[color=#000000][font=Consolas]               Dim MonSR As StreamReader = Nothing  'déclaration d'une instance StreamReader[/font][/color]
[color=#000000][font=Consolas]        Try[/font][/color]
[color=#000000][font=Consolas]            MonSR = File.OpenText(Server.MapPath("Monfichier.txt")) 'ouverture du fichier[/font][/color]
[color=#000000][font=Consolas]            Me.Literal1.Text =MonSR.ReadToEnd ' affichage des données du fichier dans un Literal[/font][/color]
[color=#000000][font=Consolas]           MonSR.Close() 'Fermeture du StreamReader (à ne pas oublier)[/font][/color]
[color=#000000][font=Consolas]        Catch ex As Exception[/font][/color]
[color=#000000][font=Consolas]             [/font][/color]
[color=#000000][font=Consolas]        End Try[/font][/color]
[color=#000000][font=Consolas]    End Sub[/font][/color][/left]

 

et pour l’écriture:


[left][color=#000000][font=Consolas]Sub EcrireFichier()[/font][/color]


[color=#000000][font=Consolas]        Try[/font][/color]
[color=#000000][font=Consolas] Dim MonSR As StreamWriter = New StreamWriter(Server.MapPath("Monfichier.txt"))[/font][/color]
[color=#000000][font=Consolas]            MonSR.Write(Me.TextBox1.Text) 'Ecriture du contenu du textbox sur mon fichier[/font][/color]

[color=#000000][font=Consolas]            MonSR.Close()[/font][/color]

[color=#000000][font=Consolas]        Catch ex As Exception[/font][/color]
[color=#000000][font=Consolas] [/font][/color][color=#000000][font=Consolas]        End Try[/font][/color]
[color=#000000][font=Consolas]    End Sub[/font][/color][/left]

Modifié par getule
Lien vers le commentaire
Partager sur d’autres sites

Whoever looks at your code will notice the redundant code you added in the exception block. As I explained, the code inside Finally will execute either there is an exception or not, there is no need to add a second Close. BTW the compiler will optimize your code and will get rid of your second Close anyway.

Modifié par Darkvader
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • Messages

    • Il existe plusieurs solutions pour l'iptv sur Windows que  si tu veux,  tu peux brancher en HDMI sur un téléviseur non connecté ou en VGA + Audio sur les téléviseurs d'anciennes générations Tu peux aussi choisir d'installer un émulateur d'Android ( Bluestacks, Noxplayer, LDPlayer, Memu play,...) sur n'importe quelle version Windows mais prévoir une RAM de 4Go au minimum. Il y'a aussi les solutions de virtualisation, comme Virtualbox et VMWare sur lesquelles tu peux installer des images Android, Là aussi il faut une mémoire RAM de plus de 4Go. Tu peux encore installer Android en dual Boot avec Windows. Cette solution est la la plus indiquée pour les ordinateurs à faible mémoire RAM
    • slt pour Windows,  tu as  - iptv smarters player - easytv - Best player - vlc y en a d autre .... si ta besoin d aide pour obtenir ce qu'il faut pour que ça fonctionne tu peux me mp , je t aiderai pas soucis  ++++
    • Salut, je recherche un tuto pour ma première iptv, j'en trouve sur android, mais rien sur windows. Ou au mieux des trucs qui vous renvoient sur un lien d'un logiciel foireux à DL.  J'ai cru comprendre qu'il fallait un lecteur type smarter pro (qui ne fonctionne pas sous windows), on rentre le code que le vendeur nous fourni et roule jeunesse ?   Si quelqu'un à un lien pour un tuto 🤗 ca fais des jours que je ponce le web à essayer de comprendre comment avoir l'iptv, mais là je sature.     
    • لكل مشتركي IDOOM FIBRE بتدفق 20mbps أبروفيتي بزيادة سرعة الإنترنت حتى 200mbps 🚀 إلى غاية 09 ماي 🥳 كونيكتي و أبروفيتي بالـHaut Débit 🤩 📌معلومات أكثر على موقعنا :  https://www.algerietelecom.dz/ar/espace-presse/algerie-telecom-augmente-le-debit-internet-de-ses-clients-pour-une-duree-dun-01-mois-art4520 #اتصالات_الجزائر #دائما_أقرب
    • Bonjour,  J'ai pas mal galérer sur ma LG OLED à trouver une application qui fonctionne bien !!! Au début je passais par un amazon stick avec l'application officiel King, sauf que sur les films en 4k uniquement, j'avais un décalage son d'une demi seconde et un film sur 4 était en écran noir...  J'ai tester franchement une bonne quinzaine d'application du store LG, avec pas mal d'entre elle ou je n'avais pas les sous titres !!! Par exemple le dernier Indiana Johns avec les passages en allemand non sous titré et aucun menu pour les afficher, et je suis tomber sur Hot iptv !!! Et franchement, pour moi elle est vraiment top, bonne présentation, assez rapide, tous les sous titres et pas mal d'options présente, et pour une License à genre 12€ à vie ! Le seul petit moins c'est que la licence est valable par adresse mac, donc sur une autre TV ou sur votre téléphone ou quoi il faut re payer une licence... Et le second soucis qui peut en déranger beaucoup, c'est pas de replay...   
×
×
  • Créer...