Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[VB 2005] TRAITEMENT DES FICHIERS


Information sur le tutorial

Catégorie :Fichier / Disque Tutorial .NET ( DotNet ) Date de création : 05/09/2007 13:48:44 Vu : 25 342 fois

Note :
Aucune note

Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

Description

Ayant remarqué que la gestion de fichiers en vb 2005 posait quelques problèmes, et que rare sont ceux qui utilisent les possibilités apportées par le framework .Net2 à ce sujet j'ai décidé de poster ce tutoriel.
Les remarques sont les bienvenues. De plus, si vous voyez une erreur ou que vous avez quelque chose à ajouter, n'hesitez pas à me contacter par MP, je ne manquerai pas de l'ajouter et de mentionner votre contribution.

Tutorial

LECTURE ET ECRITURE DE FICHIERS

 

Pour rendre ces extraits de code utilisable il faut penser à ajouter cet import :
   Imports System.IO

L'objet "File" permet d'accomplir facilement des opérations, aussi bien en lecture qu'en écriture, sur les fichiers textes ou binaires. Cette méthode est l'une des nombreuses nouveauté intéressantes ajoutées par le .Net 2.0.

 

ECRITURE D'UN FICHIER TEXTE

   La méthode WriteAllText permet l'écriture d'un fichier en mode texte. 

   'Ce code va créer un fichier texte nommé testFichierTexte à la racine du c:\ et y inscrire Test d'écriture dans un fichier texte
   Dim str_texte as string = "Test d'écriture dans un fichier texte"
   File.WriteAllText("c:\testFichierTexte.txt", str_texte)

   _________________________________________________________________________________

   La méthode AppendAllText permet d'ajouter du texte dans un fichier existant ou de le créer s'il n'existe pas :

   'Ce code va rajouter "Cette ligne a été rajouté par la méthode AppendAllText" dans le fichier texte créé précédement
   File.AppendAllText("c:\testFichierTexte.txt", "Cette ligne a été rajouté par la méthode AppendAllText")

 

LECTURE D'UN FICHIER TEXTE

   Nous allons maintenant lire ce même fichier texte et importer le résultat dans une variable :

   Dim str_texte as string
   
str_texte = File.ReadAllText("c:\testFichierTexte.txt")

 

EXEMPLE UTILISANT LA LECTURE ET L'ECRITURE

   Nous allons lire un fichier texte puis en supprimer les lignes en trop

   'Lit le fichier texte et le stocke dans un tableau
   Dim str_lignes() As String = File.ReadAllLines("c:\origine.txt")
   Dim int_compteur As Integer = 0
   Dim int_i As Integer = 0
   'Supprime les lignes vides en remontant les lignes non vides
   For int_i = 0 To str_lignes.length - 1
      If str_lignes(int_i).Trim.Length > 0 Then
            str_lignes(int_compteur) = str_lignes(int_i)
            int_compteur +=1
      End If
   Next
   'Supprime les lignes en trop et stocke le tout dans un nouveau fichier
   ReDim Preserve str_lignes(int_compteur - 1)
   File.WriteAllLines("c:\destination.txt", str_lignes)

 

 

Voilà. En ésperant pouvoir vous aider. J'attends vos remarques, précisions...

 

signaler à un administrateur
Commentaire de Bidou le 11/09/2007 09:25:16 administrateur CS

C'est un peu léger, tu aimerais pas un peu approfondir le sujet?
Parce que sur System.IO, y'en a des choses à dire...

signaler à un administrateur
Commentaire de Willi le 28/09/2007 19:10:34 administrateur CS

Oui un peu léger, en reprenant/adaptant les snippets (menu haut de page -> snippets) qui tournent autour de System.IO. Il y a de quoi enrichir ce mini-tuto.

signaler à un administrateur
Commentaire de momoshi le 02/10/2007 11:15:54

assez basique comme code c'est vrai
Mais bon pour un debut.
tu pourrais par exemple approfondir des fonctions telles fileExists, readallText, ReadText, l'utilisation de FileSystem, etc... et pourquoi ouvrir une fenetre sur la gestion des dossier.

Mais bon c'est déjà un bon debut.

signaler à un administrateur
Commentaire de pape0 le 12/10/2007 14:36:49

C'est vrai que c'est un peut court pour le sujet.

signaler à un administrateur
Commentaire de azait le 27/10/2007 14:43:37

merci mon frère je veut ajouter une nouvelle ligne qu'elle la code que vous me conseiller d'utiliser et merci  

signaler à un administrateur
Commentaire de econs le 02/11/2007 13:05:35 administrateur CS

azait > C'est écrit dans le tuto :
La méthode AppendAllText permet d'ajouter du texte dans un fichier existant ou de le créer s'il n'existe pas

signaler à un administrateur
Commentaire de cretthie le 14/11/2007 10:11:05

Bonjour, c'est vrai qu'il y a des sources deja sur les fichier, mais je crois pas beaucoup avec le appendAllText.
si on fait file.create, apres on peut pas ecrire dedans, non ?

signaler à un administrateur
Commentaire de cretthie le 14/11/2007 10:12:07

ecrire dedans tout de suite

signaler à un administrateur
Commentaire de werdDomain le 23/11/2007 18:49:06

'pour les fichier et repertoire, voici 2 exemple simple

'Dim DirList() As String = IO.Directory.GetDirectories("c:\", "*", IO.SearchOption.AllDirectories)

'Dans le aray DirList se trouveras tout les dossier du lecteur C:

'------------------------------`

'On peut Proceder de façon similaire pour les fichier.
Dim FileList() As String = IO.Directory.GetFiles("c:\", "*.txt", IO.SearchOption.AllDirectories)

----------------------------

et pour repondre a la question de CRETTHIE :

appendAllText est une version simple pour des fichier qui sont en texte, donc, léger.
avec cette methode il ne seras pas néssaire de faire Stream.close(), il ouvre(ou crée) un fichier, ecrit les données puis le referme.
si tu utilise IO.File.Create(FielPath), un nouveau stream de ce fichier ceras crée en memoire. donc tu peut l'utiliser comme suit:

Dim Writer as new IO.StreamWriter(IO.File.Create(FilePath))
Writer.Write("Hello Word")
Writer.Close()

Si tu desire seulement crée un fichier vide pour y ecrire des donée plus tard...

IO.File.Create(NewFilePath).CLOSE()

Si vous ne fermez pas le stream, il seras impocible de lire le fichier(Car il seras toujours ouvert) sauf si vous aver garder une reference a l'object stream retournée par la function IO.File.Create(Path) as IO.FileStream

Pour des fichiuer volumineux je vous sugjere d'utiliser les functions async(BeginRead et BeginWrite) ses methodes vous garentisse de meilleur performances avec un "Bufer" et votre application ne seras pas "Figer" pendent le transfere.


C'est p-e pluss un arcicle que un commentaire, mais bon... j'espere que sa vas vous aider

signaler à un administrateur
Commentaire de aaboukir1 le 26/12/2007 14:39:16

C'est très intéressant, en tant que débutant, Merci infiniment.

signaler à un administrateur
Commentaire de isidoreroody297 le 20/02/2008 01:38:27

Vraiment c'est un peu leger mais, ca resout quand bien meme le probleme.

signaler à un administrateur
Commentaire de boobayz le 12/03/2008 01:44:54

slt tout le monde

signaler à un administrateur
Commentaire de YACHINE1961 le 17/03/2008 00:33:03

C'EST BIEN POUR MOI COMME DEBUTANT MERCI

signaler à un administrateur
Commentaire de swan94 le 20/03/2008 08:33:37

YACHINE1961, je ne comprend pas ta question. Peux tu la développer. Mais sache que ce n'est pas l'endroit approprié pour poser des questions autres que celles en rapport avec ce tuto.

Cordialement,
Swan94

signaler à un administrateur
Commentaire de podolis le 07/04/2008 16:33:31

Moi j'aime bien ce tuto. En tant que débutant, il m'a permis de sauvegarder des textbox. Se que je n'avais pas réussit a faire avant car je tous les codes que je trouvé étaient trop compliqués pour que je les comprenne.
De plus je trouve que le fait que ton tuto soit "light" est plutôt une bonne chose (trop d'info tue l'info)

Donc merci à toi SWAN94.

signaler à un administrateur
Commentaire de STAR54 le 06/07/2008 15:11:15

Merci Monsieur,C'est Un Bon Tutorial

signaler à un administrateur
Commentaire de peug le 22/07/2008 07:24:49

Idem, bon tuto pour débuter car venant de VB6, .net et à mon gout trop radical, MS aurait du sortir une version VB intermédiaire et pour le débat je pense que bcp plus de monde aurait fait le pas

signaler à un administrateur
Commentaire de scoufild le 29/10/2008 15:49:34

Merci pour le code

signaler à un administrateur
Commentaire de artsport le 04/11/2008 11:17:56

salut tous le monde
merci pour l'information puisque je suis débutante dans le domaine de programmation en vb.net, mais svp si vous pouvez m'aider , je voulais savoir comment fairela recherche sur le controle de treeview dans le mode graphyque (juste comment programmer).
merci d'avance

signaler à un administrateur
Commentaire de kissdragon le 31/01/2009 18:50:51

merci c'est simple et claire

signaler à un administrateur
Commentaire de foudetous le 28/04/2009 12:15:44

c super ce code pour initier à lire et écrire dans un texte.
Merci beaucoup pour ce code.

signaler à un administrateur
Commentaire de foudetous le 03/05/2009 18:35:03

Bonjour,

je voudrais préciser, qu'avec ce code on peut écrire qu'une seule ligne de code, ma question est comment écrire plusieurs ligne de code , faut il faire une boucle(j'ai essayé mais ça na pas marché)

merci d'avance

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.