Sauvegarder une simulation avec c#

Résolu
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009 - 10 avril 2009 à 01:45
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009 - 14 avril 2009 à 12:33
bonsoir,
je suis entrain de réaliser un simulteur de réseau avec c#.
je
veux savoir comment je peux sauvegarder la derniere simultion faite et si c'est
possible le modifier
Merci d'vance pour votre aide

5 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
10 avril 2009 à 09:33
Bonjour,

A ce niveau là, c'est à toi de choisir comment tu veux procéder et de convenir à un "protocole" d'enregistrement.
Tu peux tout aussi bien enregistrer la simulation dans:
- un fichier plat (fichier XML, fichier Txt, fichier binaire...)
- une base de données

Tout dépend de ton besoin et des spécifications.

Par contre, ce sera à toi de coder le "trace" de la simulation un peu comme un fichier de log.
A mon avis, je pense qu'il te faut garder en tête que non seulement tu devras:
- restituer le résultat de la simulation (un fichier résultat peut-être ?)
- mais aussi, être capable de relancer la simulation à partir de ce dernier (un autre fichier, XML par exemple ?)

Voila, j'espère t'avoir aidé.

Bon courage et bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
10 avril 2009 à 11:03
Tu est donc sur la bonne voie (tu peux et tu dois [lol] me tutoyer, on est tous dans le même panier ici ^^ ).
Effectivement, ton fichier résultat est pratique mais uniquement en tant que résultat.
Le scénario de la simulation peut-être le même (donc même fichier, XML par exemple) mais les résultats peuvent différer dans le temps (fichiers résultats).
C'est pourquoi il est tout à fait logique de séparer ces fichiers.

Pour le fichier scénario (qui te permettra de relancer la simulation), je te propose la solution suivante (que j'aurai implémenter pour ma part).
Elle est assez simple et ne couvre pas à tous les besoins mais elle évite de passer par des fichiers de scripts de test qui introduierait la mise en place d'un analyseur syntaxique. (solution plus complexe)
Elle convient à des scénarii où seules les variables d'entrée changent mais pas le process complet en soit.

Exemple.

Tu créées une classe "Scenario" qui instanciera tous les objets contenant toutes les informations nécessaires au lancement de la simulation.
A partir d'un objet de type "Scenario", il faudrait que tu puisse lancer la simulation avec par exemple le code suivant:

Scenario test = new Scenario();//avec des valeurs d'entrée par exemple
test.StartTimeout = 1;//par exemple
//.. chargement de ton objet test en fonction de la config utilisateur ...
test.SaveTo(@"c:\temp\test1.xml");//Sauvegarde du test

Simulation.Launch(test);//Lancement du test [Méthode statique]

---------------------------------------------
    public class Scenario
    {
        /// <summary>
        /// The start timeout.
        /// </summary>
        private int _startTimeout;

        /// <summary>
        /// Initializes a new instance of the <see cref="Scenario"/> class.
        /// </summary>
        public Scenario()
        {
        }

        /// <summary>
        /// Gets or sets the start timeout.
        /// </summary>
        /// <value>The start timeout.</value>
        public int StartTimeout
        {
            get { return _startTimeout; }
            set { _startTimeout = value; }
        }

        /// <summary>
        /// Saves to XML file.
        /// </summary>
        /// The file path.

        public void SaveTo(string path)
        {
            using (TextWriter writer = new StreamWriter(path, false))
            {
                XmlSerializer ser = new XmlSerializer(typeof(Scenario));
                ser.Serialize(writer, this);
                writer.Close();
            }
        }

        /// <summary>
        /// Loads the specified scenario from file.
        /// </summary>
        /// The file path.

        /// <returns>The scenario.</returns>
        public static Scenario Load(string path)
        {
            Scenario test = null;

            using (TextReader reader = new StreamReader(path))
            {
                XmlSerializer ser = new XmlSerializer(typeof(Scenario));
                test = ser.Deserialize(reader) as Scenario;
                reader.Close();
            }

            return test;
        }
    }

---------------------------------------------

    public static class Simulation
    {
        /// <summary>
        /// Launches the specified test.
        /// </summary>
        /// The test.

        public static void Launch(Scenario test)
        {
            //to do...
        }
    }

------------------------------------------
Et pour relancer le même test, voici le code:
Scenario reTest = Scenario.Load(@"c:\temp\test1.xml");//Chargement du test à partir du fichier
Simulation.Launch(reTest);

Voila, j'espère que cela te convient;

Bon courage,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
10 avril 2009 à 10:31
bonjour,
merci bien pour votre réponse
j'ai deja sauvegarder dans un fichier resultat dasn un fichier text mais mon probleme est comment je peux  relancer la simulation à partir de ce dernier (un autre fichier, XML par exemple ?)
Merci d'avance
0
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
10 avril 2009 à 17:55
Meci bcp pour votre réponse
je vais essayer avec ce code
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_baby85 Messages postés 79 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 17 juin 2009
14 avril 2009 à 12:33
bonjour,
lorsque j'ai excuté ce programme il m'affiche de messages d'erreur  au niveau de
public static void Launch(Scenario test)
Error    1    Inconsistent accessibility: parameter type 'Simulateur.Scenario'
je veux savoir ou il faut faire l'instantation des objets de chaque classe et si ce possible me donner un petit exemple pour mieux comprendre
Merci d'avance
0
Rejoignez-nous