Problème ligne fichier VB.net [Résolu]

Messages postés
11
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
20 décembre 2006
- - Dernière réponse : rital1023
Messages postés
11
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
20 décembre 2006
- 15 nov. 2006 à 13:13
Bonjour tout le monde!!!

J'ai une question concernant mon programme : en fait je possède des centaine et des centaines de fichier .log, qui s'ajoutent dans mon répertoire toute les heures avec un nom de fichiers différents. Mon prog doit aller lire les lignes une par une dans mon fichier et ensuite crée un fichier avec non plus les heures, mais le jour de l'heure et les données qui se trouvent dans ses fichiers "jour".. je m'explique au début j'ai 24 fichiers par jour et je dois mettre toutes les données de ses 24 fichiers dans une nouveau fichier qui aura comme nom la date de ces heures. Mon programme me copie toutes les lignes du fichier "heure" au fichier "date", mais pas la première ligne et je comprends pas pourquoi.. Merci de répondre c'est urgent... je vous remets mon code :
Dim

sr
As StreamReader

Dim lignebrut
As
String

Dim fichiercdr
As
String

Dim fdate
As
String

Dim lesfichier
As ArrayList

Dim dossier
As System.IO.Directory

Dim tabDossier
As
String()

Dim dir
As
String

Dim sw
As StreamWriter

Dim fichierexist
As
String

Dim lignecours
As
String

Dim lignepreced
As
String

Dim datencours
As
String
' la ligne en cours du fichier

Dim datepreced
As
String
' la ligne qui precède la ligne en cours

Dim temp
As
String
' temporaire

TrytabDossier = dossier.GetFiles("D:\mrs-tools\dossier_cdr_en_log")
lesfichier New ArrayList(tabDossier.Length)fichiercdr "D:\mrs-tools\dossier_cdr_en_log\cdr*.log"

For
Each dir
In tabDossierlesfichier.Add(dir)
sr New StreamReader(dir)lignebrut sr.ReadLine()

fichierexist = Mid(dir, 33, 8)

WhileNot lignebrut ""lignebrut sr.ReadLine()

fdate = Mid(lignebrut, 29, 8)

datencours = fdate

If datencours = fichierexist
Then

Exit
While

End
Ifsw =

New StreamWriter("D:\mrs-tools\dossier_cdr_en_log" & datencours & ".log",
True)

If (datencours >= datepreced)
Thensw.WriteLine(lignebrut)

End
Ifsw.Close()

End
While

If
Not IsNothing(sr)
Then sr.Close()

Next dirKill(fichiercdr)

If File.Exists("D:\mrs-tools\dossier_cdr_en_log\.log")
ThenKill("D:\mrs-tools\dossier_cdr_en_log\.log")

End
If

If File.Exists("D:\mrs-tools\dossier_cdr_en_log\0709,043.log")
ThenKill("D:\mrs-tools\dossier_cdr_en_log\0709,043.log")

End
IfApplication.Exit()

Catch

End
Try
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
11
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
20 décembre 2006
3
Merci
Hey comment te remercier... ça fonctionne nickel !!!!!

Merci c'est monstre sympa de ta part de m'avoir aidé...

à une prochaine je l'espère

Ciaoooo et merci encore!!!!!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de rital1023
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
31
0
Merci
sr = New
StreamReader(dir)
lignebrut = sr.ReadLine()
fichierexist = Mid(dir, 33, 8)
While Not lignebrut = ""
    lignebrut = sr.ReadLine()
    fdate = Mid(lignebrut, 29, 8)


La première lecture est perdue, est-ce voulu ?

Attention à ta variable dir, Dir est une fonction de VB, fait gaffe que vb ne se mélange pas les pédales.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
11
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
20 décembre 2006
0
Merci
J'avais déjà cette idée que c'était ces deux lignes qui posaient problèmes... mais en enlevant la première ligne lignebrut = sr.ReadLine(). Le prog ne copie plus les lignes d'un fichier à un autre et de même avec l'autre ligne... Je ne sais vraiment pas comment faire....

La variable dir ne pose aucun problème, en tout cas en VB.net, peut-être qu'en VB6 oui...


Mais en tout cas merci pour l'info...


Tu aurais une idée pour ces deux maudites lignes ?
Commenter la réponse de rital1023
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
31
0
Merci
Essaye peut-etre avec ça alors :

For Each dir In tabDossier
lesfichier.Add(dir)
sr = New StreamReader(dir)
lignebrut = sr.ReadLine()
fichierexist = Mid(dir, 33, 8)

While Not (lignebrut = "")
<strike>lignebrut = sr.ReadLine()</strike>
fdate = Mid(lignebrut, 29, 8)
datencours = fdate
If datencours = fichierexist Then
Exit While
End If

sw = New StreamWriter("D:\mrs-tools\dossier_cdr_en_log" & datencours & ".log", True)
If (datencours >= datepreced) Then
sw.WriteLine(lignebrut)
End If

sw.Close()
lignebrut = sr.ReadLine()
End While

If Not IsNothing(sr) Then sr.Close()
Next dir

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy