cs_pompomp
Messages postés21Date d'inscriptionsamedi 28 janvier 2006StatutMembreDernière intervention21 août 2008
-
20 juil. 2008 à 16:14
cs_pompomp
Messages postés21Date d'inscriptionsamedi 28 janvier 2006StatutMembreDernière intervention21 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?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 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))