Lecture de fichier et date

Résolu
cs_pompomp Messages postés 21 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 21 août 2008 - 20 juil. 2008 à 16:14
cs_pompomp Messages postés 21 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 21 août 2008 - 20 juil. 2008 à 16:33
Bonjour,


voilà mespetit soucis :

1°) je veux lire les enregistrement d'un fichier texte et suivant une condition sur la date, les afficher ou non.


Mon code :



Lire =




New
StreamReader(FichierHistorique)


Do



Until
Lire.EndOfStream


If
Lire.ReadLine.Substring(0, 10) =

CDate
(Format(

Date
.Today,

"dd/MM/yyyy"
))

Then

ListHistorique.Items.Add(Lire.ReadLine)







End



If






Loop

Lire.Close()

Le problème c'est qu'il ne m'affiche jamais la première qui pourtant devrait l'être. J'ai l'impression qu'après le test, il passe directement à la 2è ligne pour ListHistorique.Items.Add(Lire.ReadLine)

Comment faire pour que malgré le test, je reste sur la première ligne du fichier et donc l'afficher?

2°) ici, j'ai fait un test sur la date du jour, comment puis-je faire ce test pour la veille
j'ai essayé via

dim veille as string =


Date



.Today.Day - 1 &

"/"
&

Date
.Today.Month &

"/"
&

Date
.Today.Year

mais dans ce cas, veille = 19/7/2008 et non 19/07/2008 et je ne trouve pas ça très élégant. Existe-t-il une fonction plus simple?

Merci pour vos réponses

2 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
20 juil. 2008 à 16:25
 Salut,

1. C'est parce que tu fais 2 ReadLine à la suite. 'If Lire.ReadLine.Substring(0, 10)' lira la 1ère ligne, mais '
ListHistorique.Items.Add(Lire.ReadLine)' lira la 2ème. Donc il suffit de faire comme ça:

Lire = New StreamReader(FichierHistorique)
Do Until Lire.EndOfStream
    Dim Line as String = Lire.ReadLine
    If Line.Substring(0, 10) = CDate (Format( Date .Today, "dd/MM/yyyy" )) Then
        ListHistorique.Items.Add(Line)
    End If
Loop
Lire.Close()

Il suffit de faire une exécution pas à pas pour voir le problème.

2. Dim hier As Date = Date.Today.Subtract(New TimeSpan(1, 0, 0, 0))
3
cs_pompomp Messages postés 21 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 21 août 2008
20 juil. 2008 à 16:33
Réponse acceptée avec plaisir!
J'avais bien vu que le problème venait du 1er readline mais je n'avais pas trouvé comment y remédier


Merci bien Kevin.Ory, ça marche impec !
0
Rejoignez-nous