-
Comparer 2 stream
Bonsoir à tous,
je réalise un programme qui fonctionne sur la base de projets (1 projet = 1 fichier, même principe que word ou excel).
Je travaille avec une classe pour centraliser toutes les informations;
Pour l'enregistrement, j'utilise xmlserializer.
Ce que j'aimerais c'est pouvoir vérifier si le projet a été modifié au moment de la fermeture du programme.
Je pensais comparer la stream du fichier existant et celle de la classe utilisée dans le programme en cours, mais je ne trouve pas de commande adéquate.
Avez-vous des pistes à me donner?
-
Bonjour,
avant de quitter l'appli, tu peux enregistrer ce qu'a fait l'utilisateur dans un fichier temporaire et le comparer au fichier existant :
http://blogs.vbcity.com/mcintyre/arc...1/22/8163.aspx
-
L'idée n'est pas mauvaise. Je vais regarder.
Par contre, jusqu'à quelle taille de fichiers on peut considérer que le test sera transparent pour l'utilisateur? D'après mes premiers tests, je pense que les fichiers les plus gros feront un peu plus de 100ko (au format xml), est-ce que le test ne va pas ralentir le programme? (en théorie, l'accès aux fichiers se fera en local, pas de réseau)
Sinon, j'avais l'idée de rajouter une propriété "Modification" à ma classe en booléen. Elle s'initialise à false et à chaque modif je la passe à true. Mais j'ai peur que ce soit lourd à gérer dans le code.
-
Comparer des streams n'est pas une bonne idée. En fait, c'est rarement faisable. Car un stream est une entité abstraite qui cache un type concret comme un NetworkStream, FileStream, MemoryStream, etc.
Or ces streams ne sont pas toujours disponibles en lecture et on ne peut pas toujours naviguer dedans (impossible de revenir au début d'un NetworkStream par exemple). Par conséquent, il faut ici comparer ce que tu mets dans le stream ou ce qui a été produit par le stream mais pas le stream lui même.