begin process at 2010 02 10 10:15:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Exécution

 > 

ResourceWriter append possible ou non ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ResourceWriter append possible ou non ?

lundi 31 mars 2008 à 05:17:10 | ResourceWriter append possible ou non ?

jibus

Salut à tous, J'ai actuellement une petite appli qui me sauvegarde dans un fichier .resources pas mal d'images (plus de 1000). Mon *@/!% problème vient de ResourceWriter : IResourceWriter rw = new ResourceWriter(path); foreach (ListViewItem i in items) { Bitmap bp = new Bitmap(info.Path); rw.AddResource(i.Text, bp); } rw.Generate(); rw.Close(); Avec ce code, le addResource() est censé ajouter à une liste chaque item que je veux mettre dans mon fichier .resources, puis le Generate() construit le fichier à l'aide de cette liste. Sauf que avec plus de 1000 objets j'ai comme qui dirait un léger OutOfMemory. Le RW semble faire un free complet tout à la fin de la création du fichier et non après chaque ajouts d'item. J'ai donc penser faire un free tout les 10 ajouts et ajouter à chaque fois le reste des data à la suite de mon fichier : FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write); IResourceWriter rw = new ResourceWriter(fs); foreach (ListViewItem i in items) { Bitmap bp = new Bitmap(info.Path); rw.AddResource(i.Text, bp); if ((i.Index%10 == 0) || (i.Index == (items.Count - 1))) { //generate and free resource writer rw.Generate(); rw.Close(); //free stream fs.Dispose(); fs.Close(); //reload file fs = new FileStream(path, FileMode.Append, FileAccess.Write); rw = new ResourceWriter(fs); } } Cette solution à l'air de bien m'ajouter les images dans le fichier .resources, car il est volumineux, mais les data ou le header doivent être endommagé car à la relecture je ne peux lire que les 10 premiers items ajouté. J'ose vraiment espérer que l'un d'entre vous à une solution car moi je bloque... Merci d'avance ;) ++ InsectS
lundi 31 mars 2008 à 05:30:38 | Re : ResourceWriter append possible ou non ?

jibus

<br>
Désolé pour les quotes, je ne trouve pas où modifier mon message.. donc je reposte.<br>
<br>
Salut à tous, J'ai actuellement une petite appli qui me sauvegarde dans un fichier .resources pas mal d'images (plus de 1000).<br>
<br>
Mon *@/!% problème vient de ResourceWriter :<br>
<br>
IResourceWriter rw = new ResourceWriter(path);<br>
<br>
foreach (ListViewItem i in items)<br>
{<br>
    Bitmap bp = new Bitmap(info.Path);<br>
    rw.AddResource(i.Text, bp);<br>
}<br>
rw.Generate();<br>
rw.Close();<br>
<br>
Avec ce code, le addResource() est censé ajouter à une liste chaque item que je veux mettre dans mon fichier .resources, puis le Generate() construit le fichier à l'aide de cette liste. Sauf que avec plus de 1000 objets j'ai comme qui dirait un léger OutOfMemory. Le RW semble faire un free complet tout à la fin de la création du fichier et non après chaque ajouts d'item.<br>
<br>
J'ai donc penser faire un free tout les 10 ajouts et ajouter à chaque fois le reste des data à la suite de mon fichier :<br>
<br>
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);<br>
IResourceWriter rw = new ResourceWriter(fs);<br>
<br>
foreach (ListViewItem i in items)<br>
{<br>
    Bitmap bp = new Bitmap(info.Path);<br>
    rw.AddResource(i.Text, bp);<br>
    <br>
    if ((i.Index%10 == 0) || (i.Index == (items.Count - 1)))<br>
    {<br>
        //generate and free resource writer<br>
        rw.Generate();<br>
        rw.Close();<br>
        <br>
        //free stream<br>
        fs.Dispose();<br>
        fs.Close();<br>
        <br>
        //reload file<br>
        fs = new FileStream(path, FileMode.Append, FileAccess.Write);<br>
        rw = new ResourceWriter(fs);<br>
     }<br>
}<br>
<br>
Cette solution à l'air de bien m'ajouter les images dans le fichier .resources, car il est volumineux, mais les data ou le header doivent être endommagé car à la relecture je ne peux lire que les 10 premiers items ajouté.<br>
<br>
J'ose vraiment espérer que l'un d'entre vous à une solution car moi je bloque...<br>
<br>
Merci d'avance ;)<br>
++<br>
<br>
InsectS
lundi 31 mars 2008 à 09:52:59 | Re : ResourceWriter append possible ou non ?

BruNews

Administrateur CodeS-SourceS

Sur un éditeur Windows (notepad ou autre):

  IResourceWriter rw = new ResourceWriter(path);
  foreach (
    ListViewItem i in items) {
    Bitmap bp = new Bitmap(info.Path);
    rw.AddResource(i.Text, bp);
  }
  rw.Generate();
  rw.Close();
  Avec ce code, le addResource() est censé ajouter à une liste chaque item que je veux mettre dans mon fichier .resources, puis le Generate() construit le fichier à l'aide de cette liste. Sauf que avec plus de 1000 objets j'ai comme qui dirait un léger OutOfMemory. Le RW semble faire un free complet tout à la fin de la création du fichier et non après chaque ajouts d'item. J'ai donc penser faire un free tout les 10 ajouts et ajouter à chaque fois le reste des data à la suite de mon fichier:
  FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
  IResourceWriter rw = new ResourceWriter(fs);
  foreach (ListViewItem i in items) {
    Bitmap bp = new Bitmap(info.Path);
    rw.AddResource(i.Text, bp);
    if ((i.Index%10 == 0) || (i.Index == (items.Count - 1))) {
      //generate and free resource writer
      rw.Generate();
      rw.Close();
      //free stream fs.Dispose();
      fs.Close(); //reload file
      fs = new FileStream(path, FileMode.Append, FileAccess.Write);
      rw = new ResourceWriter(fs);
    }
  }


ciao...
BruNews, MVP VC++



Cette discussion est classée dans : fichier, fs, path, rw, resourcewriter


Répondre à ce message

Sujets en rapport avec ce message

Fichier sans Path OpenFileDialogue [ par jdaviaud ] Salut tout le mondeEst ce qu'il est possible de récupérer le nom du fichier sans son path complet en retour d'une OpenFileDialoguecar quand j'essaye M Ecrire en fin de fichier.... [ par wipeout ] Bonjour les z'infos... je cherche a ecrire en fin d'un fichier avec C#. Il existe diferentes facon de le faire mais j'ai le fais est que cela ne fonct Récupérer nom d'un fichier à partir du path [ par 0xYg3n3 ] Bonjour, Je souhaites a partir d'un emplacement complet d'un fichier, récupéré via la classe OpenFile, récupéré seulement le nom du fichier. Afin d'a Problème écriture fichier image [ par Supopste ] Bonjour,j'ai actuellement un petit problème qui me bloque pour avancer dans mon programme pourtant, cela semble facile à résoudre, mais comment?Je dev prbl bizarre fichier texte [ par penchu ] bonjour à tous, ya un truc que je ne parviens pas à comprendre : dans ma form, j'ai 2 textbox et un bouton envoyer. Quand je fais par exemple, un sw. sauvegarder un fichier [ par uzu ] bonjour je travaille en C#, j'ai un classe Armure où j'ai déclarer un constructeur avec paramètre d'entrée le nom du fichier: // Constructeur armure a Problème de transfert de gros fichiers via FTP en C# [ par krimog ] Bonjour. J'utilise actuellement un programme en C# pour transférer un fichier sur un serveur via FTP. Cependant, la taille de mon fichier augmente per prbleme Fichier TAR [ par tonitto ] Bonjour, j'essaye de créer un fichier TAR mais j'ai un problème. j'arrive a créer le fichier mais il contien les données du fichier txt et pas le fich Dll Path [ par edokt ] Bonjour a tous Voila la question que j'ai J'ai creé une Dll a partir C# - Projet - Bibliothèque de classes Dans la dll j'utilise un fichier xml que [ASP.NET 2.0] Probleme ouverture d'un fichier ... [ par notoriousFab ] Bonjour à tous , J'ai cree un site internet qui gère des résultats de joueurs de tennis. Sur ce site, il faut pouvoir envoyer un mail aux responsables


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales