Bonsoir tout le monde, voilà j'ai un gros soucis je m'explique.
Soit une declaration globale d'un Tmemorystream
et dans le create du main form:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MY_MemoryStream:TMemoryStream;
Ok, donc on créé le memorystream et on charge en memoire le fichier toto.tto
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 MY_MemoryStream:=TMemoryStream.Create; MY_MemoryStream.LoadFromFile('toto.tto');
Je n'ai pas mis de MY_MemoryStream.Free dans l'espoir de pouvoir utiliser 2 fois le stream...
je vais m'expliquer
Ensuite j'ai creer un objet
Dans le create de cet objet j'ai ceci
Bon maintenant je creer une premiere instance de l'objet en question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Trucmuch.LoadFromStream('toto.tto',My_MemoryStream);
on passe dans le create et on charge Trucmuch à partir du stream
Jusqu'ici tout va bien.
Maintenant si je veux creer une deuxieme instance de cet objet
lorsque je repasse dans le create
au momment de l'execution de
j'ai une erreur indice hors limite [0]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Trucmuch.LoadFromStream('toto.tto',My_MemoryStream);
ce qui me fait penser que le memorystream est vide.
J'ai absolument besoin de pouvoir charger en memoire un fichier binaire arbitraire, et de pouvoir l'utiliser x fois via un loadfromstream.
Je ne peux me permettre des loadfromfile... Je ne veux pas d'acces au disque dur.
En fait je cherche a creer une sorte de MemoryStream permanent, qui garde en memoire le fichier chargé jusqu'au close final de l'application (je le libererai avec un free a ce momment là)
Par pitié... Aidez moi, je patauge dans la panade...
Qu'est-ce qui m'echappe?
Aurriez vous un petit bout de code pour realiser cela
D'avance merci.
Partager