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 !

Sujet : FileStream et libération de mémoire... [ Système / Fichier & Disque ] (GenEars)

jeudi 2 novembre 2006 à 17:21:53 | FileStream et libération de mémoire...

GenEars

 GenEars > Bonjour,

il y a quelques temps j'ai réutilisé une unité uFileByChunk qui m'a été bien utile pour une moulinette de fichier d'erreurs en .csv, erreur par erreur...

je réadapte cette même unité qui utilise un TFileStream à travers un tableau pour un nouveau projet analysant plusieurs .csv à la suite.

Ce tableau/FileStream est créé, puis détruit, pour chaque .csv; mais (!) au bout de 7 ouvertures/fermetures, EOutOfMemory apparaît !

... je réduit la taille du tableau : la limite de 7 opérations recule mais persiste...
... j'observe l'utilisation de la mémoire via le Gestionnaire de tâches : jamais en saturation...

Alors, une idée pour vraiment libérer un objet et ses mémoire ?

Dans l'attente,

jeudi 2 novembre 2006 à 18:38:17 | Re : FileStream et libération de mémoire...

Loda

Membre Club
salut, sans un bout de code, c'est dur à dire où est ton problème.... Je suis plus doué en prog qu'en divination... :) indique déjà quand et où est le raise. ça serrait un bon début. sinon, lorsque tu observe la mémoire utiliser dans le gestionnaire, est-ce que la mémoire utilisée par ton applic augmente lorsque tu ouvre/ferme des fichiers? (le total du PC, à la limite en s'en fout) et pour détruire des object, un .free marche bien en général. Faut juste faire gaffe au object qui peuvent être associé, mais pas détruit par le destroy. (l'exemple le plus typique étant les object associé au TStringList (combobox, ...)) dans l'attente....

vendredi 3 novembre 2006 à 15:36:47 | Re : FileStream et libération de mémoire...

N_M_B

salut a tous !
Loda> "l'exemple le plus typique étant les object associé au TStringList (combobox, ...)"  pourais tu m'éxpliquer cala , sa m'interesse :)
GenEars>désolé mais mon niveau en prorammation ne me permet pas de t'aider :(

alé a+

N*M*B

vendredi 3 novembre 2006 à 15:45:56 | Re : FileStream et libération de mémoire...

Loda

Membre Club
bin, les TStringList te permet d'associer un Object (TObject) à chaque élément(cad chaque string). typiquement, c'est très utile pour les combo box. comme ça tu peux avoir directement une référence à la class correspondante à l'item selectionner par l'utilisateur. Aussi, tu peux y affecter des object que tu créer spécilament pour ta list. Dans ce cas, il FAUT les détruire avant de faire un .clear sur ton stirng list. sinon, t'as des fuite de mémoire. perso, je me sert de ce principe pour retourner un tableau d'object qiu doivent s'afficher sous form de list sur une interface utilisateur. comme ça j'ai le text d'affichage ET l'object au même endroit. facile :) regarde l'aide, c'est bien expliquer. PS: au cas ou cela ne serrait pas clair pour toi, les items d'un combobox sont en fait un TStringList. donc manipulable comme tel.



Cette discussion est classé dans : tableau, mémoire, csv, filestream, libération


Répondre à ce message

Sujets en rapport avec ce message

taille mémoire d'un tableau dynamique de string [ par ni69 ] Bonjour,Est-il possible de connaître exactement la taille mémoire occupée par un tableau dynamique de string ?J'ai cherché un bon moment sans rien tro Delphi/affichge tableau [ par Nadia16 ] Bon jour,Je veut savoir comment on peut sauvegarder des vecteurs ou des tableaux (matrice)et les afficher en Delphi pour en suit les utiliser pour tra Création de tableau [ par madcap ] Bonjour à tous,Je suis sur un projet en Delphi et j'ai besoin de vos lumières.J'ai un tableau de type StringGrid qui contient différents éléments. J'a Service Windows - Gestion de la mémoire [ par madcap ] Bonjour à tous,J'ai développé un service Windows en Delphi qui interroge un WS chaque X temps pour récupérer des données et les insérer dans une base Les pointeurs! [ par Samou85 ] Bonjour à tous!voilà je voudrais poser une question sur les pointeurs!J'ai une tableau où chaque case contient un pointeur vers un autre tableau, et j Mettre un TBitmap en mémoire [ par Matware456 ] Bonjour, Comme le titre l'indique j'aimerais placer un TBitmap en mémoire, c'est à dire le placer entièrement dans la RAM pour pouvoir le réutiliser d pointeurs! [ par Samou85 ] Bonjour à tous!j'ai un tableau de pointeur "T" et et à un moment donné je dois supprimer certaine cases de ce tableau, je voudrais savoir si le fait d Ecrasement de mémoire [ par drolimi ] Je soupçonne fortement qu'une ressource de mon programme est libérée à tort plusieurs fois et que cela cause un écrasement de mémoire. Y-a-til un moye prb avec dll et tableau dynamique [ par bd ] actuellement je recois en parametre d'une fonction un tableau de longueur variable. ce tableau est rempli dans la fonction de la dll.au retour dans la tableau dynamique de type TStrings [ par Teardrop ] Bonjour,je suis sur un petit projet de client mail utilisant le composant Pop3Client du pack ICS de F.Piette.J'aimerai bien pouvoir stocker les header


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,359 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é.