Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SERIALISATION/DESERIALISATION D'UNE STRUCTURE


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : structure, sérialisation, désérialisation, fichier, binaire Niveau : Débutant Date de création : 12/01/2007 Date de mise à jour : 12/01/2007 13:03:01 Vu : 6 712

Note :
Aucune note

Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note

Description

Enfin !

Depuis 3 semaines, je cherchais à écrire une structure dans un fichier binaire. J'ai enfin réussi. Ce code écrit 5 enregistrements dans un fichier binaire, puis les lit, tout simplement ! Il faut passer par la sérialisation/désérialisation.

J'ai mis un seul commentaire car je pense que le code est assez clair (?)

 

Source

  • Imports System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
  • Imports System.IO
  • Public Module Module1
  • Dim nom_fichier As String = "test.bin"
  • <Serializable()> _
  • Public structure HighScore
  • ' attributs
  • Private _pseudo As String
  • Private _score As Integer
  • Private _reussite As Double
  • Private _duree_jeu As TimeSpan
  • ' propriétés
  • Public Property pseudo() As String
  • Get
  • Return _pseudo
  • End Get
  • Set(ByVal value As String)
  • _pseudo = value
  • End Set
  • End Property
  • Public Property score() As Integer
  • Get
  • Return _score
  • End Get
  • Set(ByVal value As Integer)
  • _score = value
  • End Set
  • End Property
  • Public Property reussite() As Double
  • Get
  • Return _reussite
  • End Get
  • Set(ByVal value As Double)
  • _reussite = value
  • End Set
  • End Property
  • Public Property duree_jeu() As TimeSpan
  • Get
  • Return _duree_jeu
  • End Get
  • Set(ByVal value As TimeSpan)
  • _duree_jeu = value
  • End Set
  • End Property
  • ' Constructeur
  • Public Sub New(ByVal __pseudo As String, ByVal __score As Integer, _
  • ByVal __reussite As Double, ByVal __duree_jeu as TimeSpan)
  • _pseudo = __pseudo
  • _score = __score
  • _reussite = __reussite
  • _duree_jeu = __duree_jeu
  • End Sub
  • End Structure
  • Public sub Serialize(ByVal struct As HighScore, ByVal fichier As String)
  • Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
  • New Runtime.Serialization.Formatters.Binary.BinaryFormatter
  • Dim stream As FileStream
  • 'If struct Is Nothing Then Return False
  • If Not File.Exists(fichier) Then
  • stream = New FileStream(fichier, FileMode.Create)
  • Else
  • stream = New FileStream(fichier, FileMode.Append)
  • End If
  • serializer.Serialize(stream, struct)
  • stream.Close()
  • End sub
  • Public Function Deserialize(ByVal fichier As String) As Boolean
  • Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
  • New Runtime.Serialization.Formatters.Binary.BinaryFormatter
  • Dim stream As FileStream
  • Dim result As HighScore
  • If Not File.Exists(fichier) Then
  • return false
  • else
  • stream = New FileStream(fichier, FileMode.Open)
  • While True
  • Try
  • result = deserializer.Deserialize(stream)
  • Console.WriteLine("Pseudo : {0}, score : {1} bonnes réponses, reussite : {2}%, temps : {3}.", result.pseudo , result.score, result.reussite, result.duree_jeu)
  • stream.Flush
  • Catch
  • Exit While
  • End Try
  • End While
  • stream.Close()
  • console.ReadLine
  • return true
  • End If
  • End Function
  • Sub Main()
  • ' TimeSpan exprime une durée
  • Dim duree As New TimeSpan(1000000000000)
  • Serialize(New HighScore("Fabien",15,70.5,duree), nom_fichier)
  • Serialize(New HighScore("Casy",13,80.33,duree), nom_fichier)
  • Serialize(New HighScore("Willy",13,70.67,duree), nom_fichier)
  • Serialize(New HighScore("X",11,98.5,duree), nom_fichier)
  • Serialize(New HighScore("CharlesRacaud",10, 92.15,duree), nom_fichier)
  • If not Deserialize(nom_fichier) Then
  • Console.WriteLine("Le fichier n'existe pas.")
  • End If
  • End Sub
  • End Module
Imports System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Imports System.IO

Public Module Module1

  Dim nom_fichier As String = "test.bin"

  <Serializable()> _
  Public structure HighScore

  ' attributs
  Private _pseudo As String
  Private _score As Integer
  Private _reussite As Double
  Private _duree_jeu As TimeSpan

  ' propriétés
  Public Property pseudo() As String
  Get
    Return _pseudo
  End Get
  Set(ByVal value As String)
    _pseudo = value
  End Set
  End Property

  Public Property score() As Integer
  Get
    Return _score
  End Get
  Set(ByVal value As Integer)
    _score = value
  End Set
  End Property

  Public Property reussite() As Double
  Get
    Return _reussite
  End Get
  Set(ByVal value As Double)
    _reussite = value
  End Set
  End Property

  Public Property duree_jeu() As TimeSpan
  Get
    Return _duree_jeu
  End Get
  Set(ByVal value As TimeSpan)
    _duree_jeu = value
  End Set
  End Property

  ' Constructeur
  Public Sub New(ByVal __pseudo As String, ByVal __score As Integer, _
                 ByVal __reussite As Double, ByVal __duree_jeu as TimeSpan)
    _pseudo = __pseudo
    _score = __score
    _reussite = __reussite
    _duree_jeu = __duree_jeu
  End Sub

  End Structure


  Public sub Serialize(ByVal struct As HighScore, ByVal fichier As String)

    Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
          New Runtime.Serialization.Formatters.Binary.BinaryFormatter
    Dim stream As FileStream
        
    'If struct Is Nothing Then Return False
    If Not File.Exists(fichier) Then
      stream = New FileStream(fichier, FileMode.Create)
    Else
      stream = New FileStream(fichier, FileMode.Append)
    End If

    serializer.Serialize(stream, struct)
    stream.Close()

  End sub


  Public Function Deserialize(ByVal fichier As String) As Boolean

    Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
                    New Runtime.Serialization.Formatters.Binary.BinaryFormatter
    Dim stream As FileStream 
    Dim result As HighScore

    If Not File.Exists(fichier) Then
      return false
    else
      stream = New FileStream(fichier, FileMode.Open)

      While True
        Try
          result = deserializer.Deserialize(stream)
          Console.WriteLine("Pseudo : {0}, score : {1} bonnes réponses, reussite : {2}%, temps : {3}.", result.pseudo , result.score, result.reussite, result.duree_jeu)
          stream.Flush
        Catch
          Exit While
        End Try         
      End While

      stream.Close()
      console.ReadLine
      return true
    End If
   
  End Function

  Sub Main()
    ' TimeSpan exprime une durée
    Dim duree As New TimeSpan(1000000000000)
    
    Serialize(New HighScore("Fabien",15,70.5,duree), nom_fichier)
    Serialize(New HighScore("Casy",13,80.33,duree), nom_fichier)
    Serialize(New HighScore("Willy",13,70.67,duree), nom_fichier)
    Serialize(New HighScore("X",11,98.5,duree), nom_fichier)
    Serialize(New HighScore("CharlesRacaud",10, 92.15,duree), nom_fichier)

    If not Deserialize(nom_fichier) Then
      Console.WriteLine("Le fichier n'existe pas.")
    End If

  End Sub

End Module

Conclusion

Bon je ne sais pas parcourir un fichier alors j'ai mis un "Try". En effet, While not (result is nothing) ne marche pas : le compilateur bloque sur le Is.

Pour les newbies, comme moi, pour faire marcher ce programme :
1/Ouvrez un projet vide.
2/Ajouter un fichier vide.
3/Faites un copier-coller de mon code.
4/Lancer la compilation.

n.b.Cet exemple est intéressant car il lit plusieurs enregistrements. Dans tous les exemples/tutos lus, seul un enregistrement était concerné.

J'espère que ce code aidera les débutants comme moi, qui ont galéré pour écrire de simples structures dans un simple fichier binaire. A noter que cet exemple doit aussi marcher pour les objets. Dans ce cas, il faut remplacer le Structure par Class.

 

Historique

12 janvier 2007 13:03:01 :
J'ai ajouté un membre TimeSpan pour montrer qu'on peut sérialiser/désérialiser autre chose que des nombres et des caractères.

Commentaires et avis

signaler à un administrateur
Commentaire de casy le 12/01/2007 12:00:03

Ca a le mérite d'etre simple clair et concis.

Très bien

signaler à un administrateur
Commentaire de Willi le 12/01/2007 12:20:18 administrateur CS

Je ne sais pas quelle version de vb dont tu disposes, je te conseilles d'en faire une classe générique pour Serialier/déserialiser un objet/une structure.

Bonne continuation

signaler à un administrateur
Commentaire de _Fabien le 12/01/2007 12:58:15

Pas bête Willi !

Voici la seconde version : j'ai ajouté un timespan pour montrer que l'on peut sérialiser autre chose que des nombres et des strings.

signaler à un administrateur
Commentaire de Afyn le 12/01/2007 17:36:35

Et si un fichier binaire est structuré ? (comme un fichier Midifile par exe ...) est ce qu'on peut le lireplus facilement ?

Afyn - Navedac

signaler à un administrateur
Commentaire de fdiedler2000 le 13/01/2007 12:17:20

tu devrais mettre un zip car quand on fait copier / coller pour ton code et bah on à le numéro des lignes aussi et donc il faut les enveler une par une et c'est chiant à terme surtout si le code est long !

Merci

signaler à un administrateur
Commentaire de _Fabien le 13/01/2007 19:18:28

Afyn, je ne sais pas ; je débute. A toi de creuser la question.

fdiedler2000 : ah bon ! Quand je sélectionne le code, il ne me prend pas les lignes. D'ailleurs, pleins de codes sont présentés comme le mien.

J'utilise IE7. Essayé aussi avec FireFox 2.0.0.1, pas de soucis non plus.

Willy, pour l'instant, je n'ai pas le temps et suis-je capable de le faire ? Je dois poursuivre mon projet perso pour mieux me former au VB.Net, mais si quelqu'un veut le faire, pas de problème.

signaler à un administrateur
Commentaire de fdiedler2000 le 13/01/2007 20:46:58

Vous avez de la chacne moi il me prends les ligne... Vous utilisez un Ctrl C puis Ctrl V dans l'IDE ?

signaler à un administrateur
Commentaire de Kite37 le 14/01/2007 13:03:04

je me pose une question : si dans le fichier tu sérialise plein de données, comment trouver celle voulue, ou toute les récupérer? car d'après ton code tu n'en récupère qu'une ..

moi par exemple, pour un jeu, je veux sérialiser la map. Deux choix s'offre a moi :
-Sérialiser chaque case de la map une par une
-Sérialiser directement la map avec le tableau de case.

Quel serait le choix le plus judicieux?
et est-ce possible de sérialiser des tableaux d'une structure différente de celle d'origine?
(ici, la structure map, ou la classe map, serait sérialisée, mais les "cases" apparaissant dans le tableaux appartiendrait a une autre structure..comment faire?)

Et une dernière question, est-il possible de faire de meme avec des classes?

Merci d'avance pour les réponses ^ ^

signaler à un administrateur
Commentaire de Malkuth le 15/01/2007 13:04:00

C'est super la sérialisation mais ils faut faire trés attention pour que le programme soit évolutif, tout en restant compatible avec les fichier d'ancienne version et il faut noté que le sérialisation binaire demande certains droits, je vous conseille si vous avez trouver cette sources intérréssante de bien regarder dans la MSDN.

Il y'a en .net un deuxième type de sérialisation : la sérialisation XML sont avvantage est de produire des fichier XML c'est trés pratique lors du debbugage et on peut les modifier dans un simple notepad.

signaler à un administrateur
Commentaire de Malkuth le 15/01/2007 13:33:45

PS : C'est tous a fais possible pour les classes , pour ce qui est de sérialser des tableux, le plus simple est de mettre le tableau dans une collection et de sérialiser la collection, lors de la désérialisation tu récupère une collection avec tous tes objets dedans. ex :

    'Création de la collection
    Dim duree As New TimeSpan(1000000000000)
    Dim HighScores as new System.collections.generic.List(of HighScore)(
        new HighScore(){
            New HighScore("Fabien",15,70.5,duree),
            New HighScore("Casy",13,80.33,duree),
            New HighScore("Willy",13,70.67,duree),
            New HighScore("X",11,98.5,duree),
            New HighScore("CharlesRacaud",10, 92.15,duree),
        }
    );


    'Sérialisation(Autres procédure)
    Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
          New Runtime.Serialization.Formatters.Binary.BinaryFormatter

    Dim stream As FileStream = New FileStream(fichier, FileMode.Create)
    serializer.Serialize(stream, HighScores)
    stream.Close()

    'désérialisation(Autres procédure)
    Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
                    New Runtime.Serialization.Formatters.Binary.BinaryFormatter
    Dim stream As FileStream = New FileStream(fichier, FileMode.Open)
    Dim HighScores as System.collections.generic.List(of HighScore)= deserializer.Deserialize(stream)
    stream.Close()
    
Ca résoud aussi le problème de savoir quand s'arreter de lire le fichier réponse : c'est pas mon problème c'est la désérialisation de la collection qui s'en occupe.

donc le mieux c'est de sérialiser un objet unique
par example pour la map d'un jeu on crée un classe de ce genre :

Classe MAP
    Chaine Nom
    Nombre Version
    List(Of Block) Bloks
Fin Classe

Classe Block
    Image ImageFond
    int CoordX
    int CoordY
Fin Classe

et lors de la sérialisation d'un objet MAP, les Objet Block sont sérialisé de manière transparente et vice versa pour la déserialisation toutefois tous les objet de la hiérarchie doivent être sérializable (sauf avec les attribut voir msdn).

signaler à un administrateur
Commentaire de Kite37 le 15/01/2007 18:45:41

merci beaucoup pour ta réponse sa va m'être d'une aide très précieuse :)

signaler à un administrateur
Commentaire de _Fabien le 16/01/2007 10:20:14

fdiedler2000, je sélectionne tout à la souris puis Ctrl+C ou Edition->Copier.

Intéressant Malkuth !

Kite37, non ! Dans mon code, je les récupère une par une séquentiellement. Ensuite est-ce possible de récupérer ou modifier directement que la 3ème par exemple ? Sans doute. Faut voir les méthodes proposées.

signaler à un administrateur
Commentaire de fdiedler2000 le 16/01/2007 10:44:37

c'est pourtant ce que j'ai fait mais j'ai les numéro des lignes ! lol j'ai pas de chance tans pis :(

Bonne source au passage

Merci

signaler à un administrateur
Commentaire de _Fabien le 16/01/2007 13:05:06

Pour fdiedler2000 :

Imports System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Imports System.IO
  
Public Module Module1
  
  Dim nom_fichier As String = "test.bin"
  
  <Serializable()> _
  Public structure HighScore
  
  ' attributs
  Private _pseudo As String
  Private _score As Integer
  Private _reussite As Double
  Private _duree_jeu As TimeSpan
  
  ' propriétés
  Public Property pseudo() As String
  Get
    Return _pseudo
  End Get
  Set(ByVal value As String)
    _pseudo = value
  End Set
  End Property
  
  Public Property score() As Integer
  Get
    Return _score
  End Get
  Set(ByVal value As Integer)
    _score = value
  End Set
  End Property
  
  Public Property reussite() As Double
  Get
    Return _reussite
  End Get
  Set(ByVal value As Double)
    _reussite = value
  End Set
  End Property
  
  Public Property duree_jeu() As TimeSpan
  Get
    Return _duree_jeu
  End Get
  Set(ByVal value As TimeSpan)
    _duree_jeu = value
  End Set
  End Property
  
  ' Constructeur
  Public Sub New(ByVal __pseudo As String, ByVal __score As Integer, _
                 ByVal __reussite As Double, ByVal __duree_jeu as TimeSpan)
    _pseudo = __pseudo
    _score = __score
    _reussite = __reussite
    _duree_jeu = __duree_jeu
  End Sub
  
  End Structure
  
  
  Public sub Serialize(ByVal struct As HighScore, ByVal fichier As String)
  
    Dim serializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
          New Runtime.Serialization.Formatters.Binary.BinaryFormatter
    Dim stream As FileStream
        
    'If struct Is Nothing Then Return False
    If Not File.Exists(fichier) Then
      stream = New FileStream(fichier, FileMode.Create)
    Else
      stream = New FileStream(fichier, FileMode.Append)
    End If
  
    serializer.Serialize(stream, struct)
    stream.Close()
  
  End sub
  
  
  Public Function Deserialize(ByVal fichier As String) As Boolean
  
    Dim deserializer As Runtime.Serialization.Formatters.Binary.BinaryFormatter = _
                    New Runtime.Serialization.Formatters.Binary.BinaryFormatter
    Dim stream As FileStream
    Dim result As HighScore
  
    If Not File.Exists(fichier) Then
      return false
    else
      stream = New FileStream(fichier, FileMode.Open)
  
      While True
        Try
          result = deserializer.Deserialize(stream)
          Console.WriteLine("Pseudo : {0}, score : {1} bonnes réponses, reussite : {2}%, temps : {3}.", result.pseudo , result.score, result.reussite, result.duree_jeu)
          stream.Flush
        Catch
          Exit While
        End Try
      End While
  
      stream.Close()
      console.ReadLine
      return true
    End If
    
  End Function
  
  Sub Main()
    ' TimeSpan exprime une durée
    Dim duree As New TimeSpan(1000000000000)
    
    Serialize(New HighScore("Fabien",15,70.5,duree), nom_fichier)
    Serialize(New HighScore("Casy",13,80.33,duree), nom_fichier)
    Serialize(New HighScore("Willy",13,70.67,duree), nom_fichier)
    Serialize(New HighScore("X",11,98.5,duree), nom_fichier)
    Serialize(New HighScore("CharlesRacaud",10, 92.15,duree), nom_fichier)
  
    If not Deserialize(nom_fichier) Then
      Console.WriteLine("Le fichier n'existe pas.")
    End If
  
  End Sub
  
End Module

signaler à un administrateur
Commentaire de fdiedler2000 le 16/01/2007 18:24:15

merci beacoup c'est sympa ^^

signaler à un administrateur
Commentaire de Kite37 le 16/01/2007 18:41:22

pendant que j'y suis, une toute dernière question (promis) :

peut-on sérialiser des images? par exemple si j'associes une image a une case, je peuxla sérialiser pour pouvoir la load directement par la suite?

merci pour les réponses déja postées en tout cas :) et bon travail _Fabien, tout de même :)

signaler à un administrateur
Commentaire de Malkuth le 18/01/2007 09:41:05

On peut les serializer mais je suis pas sur que le format soit compressé...à vérifier.

signaler à un administrateur
Commentaire de Kite37 le 18/01/2007 19:24:09

j'ai fait quelques tests rapide avec des classes d'essaie tappées en 2 minute, et mettant des images et compagnie, et bien tout a l'air de marcher parfaitement !

Merci beaucoup pour ton aide malkuth, et a toi aussi _fabien pour avoir posté ce code qui me permettra surement de réaliser quelques chose de très bien pour un prochain jeu :)

@ bientot, cordialement, KiTe

signaler à un administrateur
Commentaire de _Fabien le 19/01/2007 10:45:59

Ravi que ce code ait intéressé (et continuera d'intéresser) quelques personnes. Bon courage pour ton projet Kite37 : le mien avance à grand pas depuis ce problème de sérialisation. Il est même pratiquement fini.

signaler à un administrateur
Commentaire de _Fabien le 02/02/2007 17:54:38

J'ai transformé ma structure en classe et l'ai mise dans uun fichier DLL :

http://www.vbfrance.com/code.aspx?ID=41347

signaler à un administrateur
Commentaire de Kite37 le 26/02/2007 14:45:39

hmm rebonjour les gens !
Bien alors j'ai fais mon éditeur de map, pas de problèmes lors de la sérialisation, et je peux désérialiser mon fichier comme il faut.
Mais uniquement avec l'éditeur meme, impossible de désérialiser ce fichier avec un autre logiciel ! autrement dis, je peux désérialiser ma map dans l'éditeur pour la modifier, mais je ne peux pas la lire dans le jeu :(

Quelqu'un a une idée?
voici l'erreur qui se produit :

"Impossible de trouver l'assembly 'Editeur de Map, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'."

signaler à un administrateur
Commentaire de Malkuth le 26/02/2007 19:58:10

Je dirait, qu'il faut que tu créé ta classe sérializable dans une DLL(type de projet bibliothèque de classe), ensuite, dans tes deux projets, tu ajoute la référence vers le projet ou la DLL.

signaler à un administrateur
Commentaire de Kite37 le 27/02/2007 08:26:58

le problème, c'est que je cherche entre autre a sérialiser des bitmap, et je ne peux pas importer system.drawing, qui les contients, dans une projet bibliothèque de classe :s

D'après mes recherches, il vaudrait mieux se pencher sur les serializationBinder.
Je vous tiens au courant si je trouve la solution et que sa marche ..

signaler à un administrateur
Commentaire de Malkuth le 27/02/2007 15:49:48

Je ne voit pas se qui t'empêche d'utilisé System.Drawing dans une DLL, il faut juste l'ajouter dans les référence du projet de bibliothèque(click droit sur le projet, ajouter une référence onglet .NET, System.Drawing ;-) ).

signaler à un administrateur
Commentaire de Kite37 le 27/02/2007 16:47:20

malkuth, je crois que je t'aime lol :) merci problème réglé :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Enregistrement structure dans fichier binaire en .Net [ par Djin2004 ] Bonjour,Je dispose d'une structure contenant environ 150 variables et j'aimerais savoir s'il est possible en VB.net de l'enregistrer en une seule fois fichier binaire [ par taghzou ] salut tous le monde, j'ai un fichier binaire ,mais le probleme j ai pas la structure utilis&#233; comment faire pour generer la structure pour pouvoir Structure d'un fichier binaire? [ par pinje ] Bonjour a tous,J'aimerais lire un fichier binaire contenant les resultats d'un calcul, or je ne connais pas a l'avance sa structure... Est ce qu'il es [vb.net]Fichier binaire et structure [ par spycko ] Salutj'ai cr&#233;er une structure (T_FILEHST) qui corespont &#224; la strucure de mon fichier binaireet je voudrez mettre le contenu de mon fichier d lire 4 bytes dans un fichier binaire [ par ravachol ] bonjour a tous,j'ai un fichier binaire ou il y a a l'adresse 0x000E  4 bytes qui donne un entier normalement(voir image)moi je lit le fichier comme ça Comparaison entre deux bases de données ayant la même structure [ par lindahaddad ] Bonjours,J'ai  un fichier saisie  en CSpro3.3 ( un ensemble de questionnaires (1500 qs) ce fichier peut etre transferer à un fichier texte) je veut fa Afficher un fichier pdf en passant son binaire [ par tabarrant ] Salut tous le monde, Voila je vous explique mon problème. On a un serveur avec plein de fichier en pdf; donc on y fait des recherche et importation .net ouverture de fichier binaire [ par yvesyves ] Slt, je cherche à ouvrir dans vb2005 à ouvrir un fichier en mode binaire. Mais mon problème le plus important est de savoir comment on enregistre des visualisation de structures de données sur un fichier [ par hela_bouks ] Salut, la dernière fois ou j'ai posé mon problème, les réponses que j'ai reçues m'ont vraiment super aidées, c'est pour cela que je retente ma chance. creation automatique des repertoires [ par makli5 ] Salut tous monde Comment peut on creer une structure des plusieurs repertoires racines avec des sous repertoires leurs nom apartir d'un fichier txt p


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.