Problème pour réutiliser un stream

Résolu
Utilisateur anonyme - 7 mai 2006 à 15:45
 Utilisateur anonyme - 9 mai 2006 à 23:15
Salut à tous

Voila j'utilise un Timer qui appelle frequemment une procedure de ce type :

Procedure TForm1.BLABLA;
Var
FS1,FS2 : TFileStream;
Begin
FS1:=TFilestream.Create(Edit1.text,fm Create);
FS2:=TFilestream.Create(Edit2.text,fm Create);
Try
FS1.Position:=0;
FS2.Position:=0;
FS2.CopyFrom(FS1,Valeur);
FS2.Seek(0,SoFromBeginning);
Finally
FreeAndNil(FS1);
FreeAndNil(FS2);
end;

Le premier appel se fait bien. Mais après j'ai un gros message d'erreur. Je comprends pk mais je ne sais pas comment corriger cette érreur. Si quelqu'un a une ptite idée ??

A+ et merci

32 réponses

Utilisateur anonyme
8 mai 2006 à 16:47
Salut Cirec,



Ben le problème c'est que le fichier que je veux lire est un fichier
n'est pas un fichier JPeg mais un fichier que j'ai créer dans lequel il
y a plusieurs JPeg qui ont été copié dedans. En fait je fusionne des
JPeg en un seul fichier. Ensuite je cherche à me promener dans le
fichier créer pour récupérer les JPeg et les afficher dans le TImage.
Mais peut etre que je devrais essayer avec des fichiers BMP (Dommage
car beaucoup plus lourd).



Merci
0
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
8 mai 2006 à 19:41
tu dois avoir un décalage de la position dans un des seek qui fait que t'attaque pas le fichier au bon octet de début ! faut donc essayé de lire les entetes et les afficher pour voir si t'est calé par rapport a chaque début ... j'ai eu le même probleme sur des extraction de sous fichiers dans un driver modem linux .. une petite erreur de raisonnement ou de positionnement ou de calcul et POUM dans le vide ERROR.

Cordialement jfs.
<hr size="2" width="100%">
Tout est en tout et réciproquement ...
0
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
8 mai 2006 à 19:47
Donc grande chance la

FSS.Seek(SizeBegin,SoFromBeginning);
MS.Seek(0,SoFromBeginning);
MS.CopyFrom(FSS,ImgSize);
FreeandNil(FSS);
MS.Seek(0,SoFromBeginning);

non ?? un petit +1 ou -1 oublié dans le raisonnement ...

Cordialement jfs.
<hr size="2" width="100%">
Tout est en tout et réciproquement ...
0
Utilisateur anonyme
8 mai 2006 à 20:46
Salut jfs59



avant d'utiliser une StringList j'ai utilisé une listbox et j'ai
bien la taille des fichiers donc si j'ai la taille correcte c'est que
je les ai tous récupérés : c'est ca qui me gene. Je vais essayer avec
les des bmp deja pour voir.



Moi qui faisait cette source pour donner une réponse à un Topic : Grrr j'aurais pas du me lancer la dedans.
0

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

Posez votre question
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
8 mai 2006 à 21:46
La taille peut etre bonne ... si le début est faux ne serait ce que d'un octet ca plante ... donc comme tu decale a chaque fois !

essaye de modifier ton code pour lire une image du fichier mais la deuxieme en premier par exemple ! si ca passe c'est que ton calcul de décalage est bon ! sinon c'est qu'il y a un truc quelque part ...

Cordialement jfs.
<hr size="2" width="100%">
Tout est en tout et réciproquement ...
0
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
8 mai 2006 à 22:03
For i:=0 to Cursor -1 do
begin
SizeBegin:=SizeBegin+StrToInt(InfoList.Strings[Cursor]);

Cordialement jfs.
<hr size="2" width="100%">
Tout est en tout et réciproquement ...
0
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
8 mai 2006 à 22:05
Pas facile d'analyser quand on n'a pas écrit .... peut etre j'ai pas compris ...

Cordialement jfs.
<hr size="2" width="100%">
Tout est en tout et réciproquement ...
0
Utilisateur anonyme
8 mai 2006 à 22:14
je vais prendre toutes vos propositions en considérations et je vous tiens au courant



Merci à vous
0
Utilisateur anonyme
9 mai 2006 à 01:42
Salut



Voila les News :



*Déja bien vu Jfs pour le cursor mais en fait il faut rajouter +1 ici :

ImgSize:=StrToInt(InfoList.Strings[Cursor+1]);



*Le probleme n'est pas réglé : hi hi hi hi.

La constation suivante est vraie pour un bitmap et un JPeg. Si
j'utilise tjs la meme image pas de probleme mais si je mets des
photos différentes (photo1 photo2 photo1 photo2) ca plante. Un probleme
de rafraichissement du TImage ? j'en suis de plus en plus persuadé.



Voila une source qui sur le principe aurait pu etre sympa mais qui se dégoupille plutot mal . Je vais finir chauve
0
cs_jfs59 Messages postés 178 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 2 février 2010
9 mai 2006 à 16:39
si c'est la même erreur c'est a 99% sur que c'est toujours le même probleme la taille est pas bonne pour la bonne image et ou le début est pas bon .... enfin c'est juste mon avis et je le partage

Cordialement jfs.
<hr size="2" width="100%">
Tout est en tout et réciproquement ...
0
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
9 mai 2006 à 21:18
Salut,
tu sais quoi le mieux pour toi c'est de poster ta source telle quelle ^^ où de la mettre dans un site pour une eventuelle analyse !!!
@+
0
Utilisateur anonyme
9 mai 2006 à 23:15
salut



jfs : Une erreur dans la taille des fichiers c'est possible. En fait tout est possible
dans ce genre de truc. Pour l'instant cette source me sort pas les yeux
: lol. Donc je valide ta réponse Jfs car tu as résolu un probleme
(que j'avais pas vu). Je verais tranquillement ce week end à tete
reposé.



Shining : si je poste ma source telle qu'elle je vais me faire allumer et me faire découper en menu morceaux .



je vous remercie pour votre aide :



Vous inquétez j'ai pas dit mon dernier mot : "je vais l'avoir moi cette source Grrrrrr " .
Comme j'ai fais ca pour répondre à un topic de toute facon cette source
est destinée uniquement à CS donc je vous tiendrais au courant



Merci vraiment beaucoup à vous tous



A++
0
Rejoignez-nous