Supprimer lignes vides fichier texte

Soyez le premier à donner votre avis sur cette source.

Vue 17 964 fois - Téléchargée 511 fois

Description

Ce script supprime les lignes vides dans un fichier texte, vous pouvez parcourir les répertoires de votre oridnateur au lieu de saisir le nom et le chemin du fichier...

Source / Exemple :


Imports System
Imports System.IO
Public Class Form1

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbl_title.Click

    End Sub

    Private Sub bt_browse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_browse.Click
        ParcoursRep.ShowDialog()
        inputFichier.Text = ParcoursRep.FileName

    End Sub

    Private Sub ParcoursRep_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ParcoursRep.FileOk

    End Sub

    Private Sub bt_go_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_go.Click
        If inputFichier.Text = "" Then
            MsgBox("Veuillez choisir un fichier !")
        Else
            Dim nomFichier As String
            Dim nvoFichier As String
            Dim lng As Integer
            Dim count As Integer
            count = 0
            nomFichier = inputFichier.Text
            lng = nomFichier.Length
            nvoFichier = nomFichier.Substring(0, lng - 4)
            nvoFichier = nvoFichier & "_2.txt"

            Using sw As StreamWriter = File.CreateText(nvoFichier)

                Try
                    Using sr As StreamReader = New StreamReader(inputFichier.Text)
                        Dim line As String
                        ' Read and display the lines from the file until the end 
                        ' of the file is reached.
                        Do
                            line = sr.ReadLine()
                            If line <> "" Then
                                sw.WriteLine(line)
                                count += 1
                            End If
                        Loop Until line Is Nothing
                        sr.Close()
                    End Using
                Catch ex1 As Exception
                    ' Let the user know what went wrong.
                    MsgBox("Le fichier ne peut pas être lu :" & ex1.Message)
                End Try
                sw.Close()
                lblResult.Text = "Taritement terminé : " & count & " lignes écrites."
            End Using
        End If
    End Sub
End Class

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
Pas mal pour montrer comment fonctionne les streams mais ne serait-ils pas plus simple de faire un readToEnd() puis d'utiliser une regExp ("(\n\r)*") et de faire un replace par vbCrLf ?
FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
Ou même, si tu n'aimes pas les regExp, faire un Split(vbCrLf, splitOptions.IgnoreEmptyEntries).Join("") ?
cs_onix88
Messages postés
4
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
16 octobre 2007
-
je suis néophyte en .net et avant de faire ce script j'essayais d'enlever les lignes vides à travers des applis comme notepad++ et autres, vu que les regex ne reconnaissaient pas le \n \r j'ai fait le truc rapidement avec les streamreader, mais je vais essayer ta soluce.
cs_yoman64
Messages postés
593
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2008
-
Salut, tu devrais effacer les lignes qui contienne seulement des espaces ou des tabulation (ce qui arrive quand on indente un code php ou vb par exemple) en utilisant la commande trim ou enlever les espaces au debut des lignes avec Ltrim, ça ajouterais une utilitée de plus a ton code!

Bonne prog a tous
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
readToEnd... pourquoi pas, mais ne conviens pas aux gros fichiers

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.