Problème avec System.Collections.Generic.List...Au secours
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009
-
17 mars 2009 à 12:47
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009
-
17 mars 2009 à 22:06
Bonjour et merci de prendre un peu de temps pour lire mon SOS.
Je précise que je ne développe pas en VB.net mais en C# (avec un niveau "loisir"), mais j'ai trouvé une source très intéressante sur code project : http://www.codeproject.com/KB/WPF/Quick_WPf_MonthView_Cal.aspx
Ce que je veux faire :
db clic sur un jour -> InputBox -> Saisie utilisateur -> sauvegarde dans un fichier texte, voici le code :
'instructions pour la classe entière
Class Window1
Private _myAppointmentsList As New List(Of Appointment)
Dim i As Integer = 0
'fin instructions pour la classe entière
Private Sub DayBoxDoubleClicked_event(ByVal e As NewAppointmentEventArgs) Handles AptCalendar.DayBoxDoubleClicked
Dim evenement As String
evenement = InputBox("Entrez un intitulé pour le mémo :", "EVENEMENT")
Dim apt As New Appointment()
apt.AppointmentID = i
apt.StartTime = New Date(CDate(e.StartDate).Year, CDate(e.StartDate).Month, CDate(e.StartDate).Day)
apt.EndTime = apt.StartTime
apt.Subject = evenement
_myAppointmentsList.Add(apt)
i = i + 1
Try
'Instanciation du StreamWriter avec passage du nom du fichier
Dim monStreamWriter As StreamWriter = New StreamWriter("evenement.txt")
For Each apt In _myAppointmentsList
'Ecriture du texte dans votre fichier
monStreamWriter.WriteLine(apt.AppointmentID.ToString() + "<" + apt.StartTime.ToString() + "<" + apt.Subject)
Next
'Fermeture du StreamWriter
monStreamWriter.Close()
Catch ex As Exception
'Code exécuté en cas d'exception
End Try
Call SetAppointments()
End Sub
Où ça se gate c'est dans le form_load, j'ai tapé ça :
( Mon fichier texte contient:
0<18/03/2009 00:00:00<18
1<19/03/2009 00:00:00<19
2<20/03/2009 00:00:00<20 )
Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Dim apt As New Appointment()
Try
' Création d'une instance de StreamReader pour permettre la lecture de notre fichier
Dim monStreamReader As StreamReader = New StreamReader("evenement.txt")
Dim ligne As String
Dim eve(2) As String
Do
ligne = monStreamReader.ReadLine()
eve = ligne.Split("<")
apt.AppointmentID = CInt(eve(0))
apt.StartTime = CDate(eve(1))
apt.Subject = eve(2)
_myAppointmentsList.Add(apt)
MessageBox.Show(apt.AppointmentID.ToString() + " " + apt.StartTime.ToString() + " " + apt.Subject)
'je vérifie les valeurs de apt
'la box 1 affiche : 0 18/03/2009 00:00:00 18
'la box 2 affiche : 1 19/03/2009 00:00:00 19
'la box 3 affiche : 2 20/03/2009 00:00:00 20
'donc on peut penser que ça marche, mais ...
Loop Until ligne Is Nothing
'Fermeture du StreamReader
monStreamReader.Close()
Catch ex As Exception
'Code exécuté en cas d'exception
End Try
'mais... je vérifie à nouveau les valeurs de chaque apt dans ma liste
For Each apt In _myAppointmentsList
MessageBox.Show(apt.AppointmentID.ToString() + " " + apt.StartTime.ToString() + " " + apt.Subject)
'la box 1 affiche : 2 20/03/2009 00:00:00 20
'la box 2 affiche : 2 20/03/2009 00:00:00 20
'la box 3 affiche : 2 20/03/2009 00:00:00 20
'et là je suis perdu !!!
Next
Call SetAppointments()
End Sub
C'est un peu long, désolé, mais je pense que ce controle peut être sympa.
Si une ame charitable veut bien essayer de regarder ce soucis, ça serait sympa.
Et si quelqu'un veut faire une appli dans ce genre, je lui mets 10 illico ;-)
PS: j'ai essayé de convertir le projet en c#, mais il y avait une 60aine d'erreurs et comme je ne maitrise pas VB.net...
cs_lagoelle
Messages postés102Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention17 mars 2009 17 mars 2009 à 21:06
Peut-être parce que le code qui me pose problème est du VB !!!!!!!!!!!!
Le controle en question est, à mon avis, très intéressant mais développé en VB.net et comme je l'ai dit mon niveau est trop faible pour le recréer en c#.
Qui plus qu'un développeur VB pourra m'aider dans ce cas précis ?