Supprimer caractère dans fichier texte

Résolu
saku28 Messages postés 13 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 27 mars 2010 - 3 oct. 2007 à 12:38
saku28 Messages postés 13 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 27 mars 2010 - 8 oct. 2007 à 13:19
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

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
3 oct. 2007 à 17:34
'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()
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
3 oct. 2007 à 13:04
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,"")

++
0
saku28 Messages postés 13 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 27 mars 2010
3 oct. 2007 à 15:40
'----- 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
0
saku28 Messages postés 13 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 27 mars 2010
5 oct. 2007 à 07:57
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 ^^'''
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saku28 Messages postés 13 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 27 mars 2010
8 oct. 2007 à 13:19
J'ai trouvé une autre solution merci beaucoup pour ton aide en tout cas Willi
0
Rejoignez-nous