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

    • @popmpopm tu as fais comment pour accéder au mode superadmin? j'ai pas bien compris le truc avec le numéro fixe.. de base c'était telecomadmin/admintelecom pour le huawei mais maintenant ca marche plus..
    • Enfin le superadmin ... Enfin tous les option  Je pense que le nom d'utilisateur et mot de passe de la connexion est le numéro de téléphone du fix avancé par 3 lettres et la même chose pour mp c'est ce que j'ai trouvé.. Je bidouille mais sans internet il mon installé le modem sans signal los mais le fix marche bizarre le technicien ma dit d'attendre 1 heure mais après 5 heure y'a rien j'ai appelé le 12 il mon dit que si elle ne serait pas activé par votre agence alors demain en va l'activé mais moi j'ai un doute lui même a appelé le 12 il ont dit que le signale ne pas stable alors m'a dit que peut être il ya du la poussière il a sifflet un peut dans le trou de la boîte 🤣🤣 moi ma conclusion c'est du bricolage tous ca je vais le contacté dimanche avant que ligne soit rétabli sinon je vais resté avec une connection de batata ellah yej3al el khir  
    • @youcef17fr c'est où ? Donc de nouveaux conteneurs arrivent de Chine contenant les équipements fibre optique (PBO , ONT , ...ect) après la crise maritime en mer Rouge.
    • Un traité international de protection pour l'IA est en train d'être négocié. une cinquantaine de pays dont l’UE, les États-Unis et le Canada étudient un texte les " Droits de l'homme et la démocratie" sur l'IA. Il vise à garantir que les développeurs d’outils d’intelligence artificielle comme OpenAI ou Mistral respectent un minimum de droits fondamentaux et d’éthique. Il s’agit du tout premier traité international sur l’IA, élaboré par le Conseil de l’Europe (à distinguer du « Conseil », la représentation des 27 pays de l’Union européenne), une institution internationale qui comprend 46 membres et dont l’objectif est de protéger les droits humains. Si un accord a été trouvé au sein de son « comité sur l’intelligence artificielle », il doit encore être avalisé par son « comité des ministres », une étape qui devrait intervenir dans le courant du mois de mai. À la différence de la récente résolution des Nations Unies qui appelle à réguler l’intelligence artificielle, ce texte sera à terme contraignant. Mais il devra suivre un long processus pour devenir applicable : il devra être ratifié par chaque État signataire, puis être transposé dans chaque droit national. Il pourrait s’appliquer, une fois toutes ces étapes franchies, à l’Union européenne, mais aussi aux États-Unis, à l’Australie, au Canada, au Japon, au Mexique, au Costa Rica, à l’Argentine… Et à tous les pays qui le souhaitent. Son objectif « vise à aligner le développement, la conception et l’application de l’intelligence artificielle avec les principes du Conseil de l’Europe », souligne sa Secrétaire Générale, Marija Pejčinović Burić, dans un communiqué. Pour ses rédacteurs, l’intelligence artificielle, qui englobe autant les IA génératives comme ChatGPT que les IA prédictives – l’IA qui est utilisée pour faire des recommandations sur les réseaux sociaux – ne doit pas porter atteinte aux droits de l’Homme, à la démocratie et à l’État de droit. Le traité vise à combler un vide. Jusqu’à présent, les règles sont majoritairement définies par les entreprises qui développent ces IA – comme OpenAI, Google, Mistral. Et le respect des droits humains est loin d’être dans leurs priorités. « L’idée, c’est de ne pas attendre que leurs systèmes soient mis sur le marché (et accessibles au grand public, ndlr), c’est de mettre en place des règles démocratiques au plus vite et en amont », explique Katharina Zügel, Policy Manager au sein du Forum sur l’Information et la Démocratie, que 01net.com a interrogée. On trouve parmi les principes à respecter : les droits de l’homme, la démocratie, la dignité humaine, la transparence, l’égalité et la non-discrimination, le respect des règles en matière de données personnelles et de vie privée, ainsi que l’idée d’innovation sûre. Les systèmes d’intelligence artificielle ne doivent par exemple pas être utilisés pour « saper l’intégrité, l’indépendance et l’efficacité des institutions et processus démocratiques, y compris le principe de séparation des pouvoirs, le respect de l’indépendance judiciaire et l’accès à la justice ».  
×
×
  • Créer...