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

    • non il ya pas autre mot de passe parce que l’ancien marche encore mais aléatoire j'essaierai une autre solution 
    • les 4  équipementier de AT n'utilise pas le Protocol tr-069 ... mais ils utilise "OMCI" , spécial OLT ONT...  pour le protocole tr-0-69 c'est surtout pour du matos domestique ect.. ....  pour la culture générale ...  https://www.thunder-link.com/fr/differences-between-omci-and-tr-069
    • pas de touriste (=pas de devise) à cause du délire de diplomatie réciproque, comme si on était une puissance mondiale alors qu'on est plus proche de la Somalie que des US.  
    • Certes... Mais le pays le plus misérables du monde ont accepté visa et mastercard comme moyen de paiement depuis des décennies ! ça ne fait pas sortir des devises... Ça fait rentrer des devises.   Franchement je ne comprends pas ces décisions... Il est trop tard hélas...  Plusieurs étrangers que je connais sont venus en Algérie avec une carte bancaire.... Et ont halluciné quand je leur ait  dit que ça ne marche pas en algerie !!!! Ils ne sont jamais revenus... Et ont trouvé cela impardonnable.... Un pays qui refuse des cartes en devise
    • C'est deux choses différentes : L'annonce pour Djezzy et la CNAS veux simplement dire que n'importe quelle carte VISA dans le monde peux servir pour payer sur leur site.. la BDL est là uniquement en tant que banque leur permettant d'accepter justement ce type de paiement.  Par contre les cartes VISA que la BDL propose c'est une toute autre chose et devrait permettre le paiement sur n'importe quelle plateforme acceptant Visa comme moyen de paiement. C'est très simple : L’Algérie cherche à limiter la sortie de devises pour préserver ses réserves en devises étrangères. Ces limitations sont liés au marché noir et l'ouverture des bureaux de change sans contraintes. Le jour ou on reglera ces deux questions, nous aurons la possibilité de l'ouverture économique et de la levé des limites.
×
×
  • Créer...