begin process at 2008 05 12 07:21:58
1 170 148 membres
52 nouveaux aujourd'hui
13 956 membres club

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 : 14 902 fois

Note :
Aucune note

Commentaire sur cette source (15)
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.

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Boutique

Boutique de goodies CodeS-SourceS