Supprimer caractère dans fichier texte [Résolu]

Signaler
Messages postés
13
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
27 mars 2010
-
Messages postés
13
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
27 mars 2010
-
Hello tous le monde
J'aurai besoins d'un petit coup de mains de quelqu'un qui s'y connait un peu en prog, car la je galère et je ne trouve malheureusement pas ce qui me faut sur le site (ou alors je ne comprend pas la source ^^'').

J'ai des fichiers textes que je dois insérer dans excel, sa c'est bon l'insértion joue. Par contre j'aurais des caractère que je souhaite  supprimer avant l'insertion dans excel mais je ne trouve pas de bonne commande.

exemple d'un de mes fichiers (tous sur le même modèle):        (http://img158.imageshack.us/my.php?image=exemplefichierrr8.jpg)

(j'ai mis en jpeg car je n'arrivais pas à respecter la mise en page sur le site et je n'ai mis qu'une partie du fichier)

Donc ce que j'aimerai réussir à faire c'est supprimer certain caractère comme les "------" entre chaque ligne ainsi que les lignes de séparation de chaque séparation = = = = = et si c'est possible supprimer la ligne de doublon qui reviens à chaque mesure

et ce quelqu'un saurait par comment je peux m'orienter déjà, merci d'avance

5 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
'Copie du fichier lbstp pour avoir un fichier temp, si on reprend directe lbstp il dit que le fichier est déjà utilisé et plante
FichierSrc = lbstp.Text
FichierDest = "C:\Temp\temp2.txt"
FileCopy(FichierSrc, FichierDest)
'ouvrir le fichier texte et y remplacer les caractères indésirables

Dimsr2
AsStreamReader = File.OpenText(FichierDest)
FichierDest = sr2.ReadToEnd()
FichierDest = FichierDest.Replace(sup1, "").Replace(sup2, "")
'Lis le fichier du début à la fin et compte le nombre de ligne
DoUntilsr2.Peek = -1
      cpt += 1
Loop
sr2.Close()
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
Bonjour,
Si tu connais le nombre de = ou - sur les lignes de séparation à supprimer. Tu peux faire comme suit.

Dim s1 as string = "====================="
Dim s2 as string = "---------------------------------"

Puis faire le ménage avant de balancer ton texte dans excel.
TonTexte=TonTexte.Replace(s1,"").Replace(s2,"")

++
Messages postés
13
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
27 mars 2010

'----- Déclaration des variables -----'









Dim
FSO = CreateObject("Scripting.FileSystemObject")


Dim
waExcel = CreateObject("Excel.Application")


Dim
Line

As



String

Dim
tabline()

As



String

Dim
cpt

As



Integer
= 0


Dim
FichierSrc

As



String

Dim
FichierDest

As



String

Dim
sup1

As



String
= "------------------------------------------------------------------------------------------------------------------------------------------------------------"


Dim
sup2

As



String
="============================================================================================================================================================"

'-------------------------------------'


'Copie du fichier lbstp pour avoir un fichier temp, si on reprend directe lbstp il dit que le fichier est déjà utilisé et plante

FichierSrc = lbstp.Text
FichierDest = "C:\Temp\temp2.txt"
FileCopy(FichierSrc, FichierDest)


'ouvrir le fichier texte et y remplacer les caractères indésirables

Dim
sr2

As
StreamReader = File.OpenText(FichierDest)
FichierDest = FichierDest.Replace(sup1, "").Replace(sup2, "")


'Lis le fichier du début à la fin et compte le nombre de ligne

Do



Until
sr2.Peek = -1
      Line = sr2.ReadLine()
      cpt += 1


Loop

sr2.Close()


'vérifie qu'il n'y aie pas déjà un fichier temp, la commande directoriy.getcurrentdirectory sert à retenir le repertoire utilisé

If
File.Exists(Directory.GetCurrentDirectory & "SignallingNetwork" & Format(Now.Date, "d-M-yy") & ".xls")

Then
      
File.Delete(Directory.GetCurrentDirectory & "SignallingNetwork" & Format(Now.Date, "d-M-yy") & ".xls")


End



If


If
cpt > 1

Then
      
waExcel.Visible =

False



'Rendre invisible Excel
      
'Importe le fichier texte vers une feuille Excel de façon Largeur fixe avec délimiteur |
      
waExcel.workbooks.OpenText("C:\Temp" & "\temp2.txt", , , , ,

True
,

False
,

False
,

False
,

False
,

True
, "|")
      

'Sauvegarde la feuiller importer lbdest est l'endroit ou l'utilisateur a choisit d'enregistrer le document
      
waExcel.Workbooks("temp2.txt").SaveAs(LbDest.Text & "SignallingNetwork" & Format(Now.Date, "d-M-yy") & ".xls", , , , , , 2)
      

'Fermer Excel
      
waExcel.workbooks.close()
      

'Supprimer le fichier temporaire
      
Kill("C:\Temp\temp2.txt")


End



If

'Fermeture d'Excel

waExcel.Application.Quit()

j'espère que c'est compréhensible
Messages postés
13
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
27 mars 2010

hello j'ai testé ton code (je n'ai pas pu hier car je n'étais pas au travail)
et quand je remplace ma partie de code par le tiens...
il me créer même plus mon fichier excel ... je suis totalement paumée la lol ^^'''
Messages postés
13
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
27 mars 2010

J'ai trouvé une autre solution merci beaucoup pour ton aide en tout cas Willi