rital1023
Messages postés11Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention20 décembre 2006
-
14 nov. 2006 à 15:23
rital1023
Messages postés11Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention20 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")
rital1023
Messages postés11Date d'inscriptionjeudi 21 octobre 2004StatutMembreDernière intervention20 décembre 2006 15 nov. 2006 à 07:45
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 ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 nov. 2006 à 10:23
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 #