Problème ligne fichier VB.net

Résolu
rital1023 Messages postés 11 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 20 décembre 2006 - 14 nov. 2006 à 15:23
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

4 réponses

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
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!!!!!!
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 nov. 2006 à 16:22
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 #
0
rital1023 Messages postés 11 Date d'inscription jeudi 21 octobre 2004 Statut Membre Dernière intervention 20 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 ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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 #
0
Rejoignez-nous