begin process at 2012 05 29 17:39:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme irregulier avec FileWrite


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

probleme irregulier avec FileWrite

vendredi 8 août 2003 à 09:40:21 | probleme irregulier avec FileWrite

poseidon2

Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:

J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.

De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....

Voici mon code:


HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hfl==INVALID_HANDLE_VALUE){
__DBG_LOG("Erreur d'ouverture du fichier");
return NULL;
}
DWORD dWrited;
int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
if(erreur==0){
DWORD error=GetLastError();
__DBG_LOG("erreur:%s",error);
}
CloseHandle(hfl);


Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
vendredi 8 août 2003 à 10:45:55 | Re : probleme irregulier avec FileWrite

BruNews

Administrateur CodeS-SourceS
Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
>
> J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
>
> De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
>
> Voici mon code:
>
>

> HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> if(hfl==INVALID_HANDLE_VALUE){
> __DBG_LOG("Erreur d'ouverture du fichier");
> return NULL;
> }
> DWORD dWrited;
> int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> if(erreur==0){
> DWORD error=GetLastError();
> __DBG_LOG("erreur:%s",error);
> }
> CloseHandle(hfl);
>

>
> Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
vendredi 8 août 2003 à 11:07:42 | Re : probleme irregulier avec FileWrite

poseidon2

Un peu plus de prog. sans probleme j'en est plein


void *ImageLink::imageRecvThread(void *pParam)
{
ImageLink *iLink = (ImageLink*)pParam;
int nIndex = 0;
int nSizeRecv = 0;
unsigned int nPacketCounter = 0;
int i=0;
char File[256];
struct tm *stime_dir;
char trame[150];
//********Creation Arborescence******
CreateDirectory("film",NULL);
time(&time_dir);
stime_dir = localtime(&time_dir);
sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
int existe=CreateDirectory(File,NULL);
if(existe==0){
__DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
return NULL;
}
//Création du fichier de lancement de la video
sprintf(trame,"%s\\image_ID_",File);
FILE *fp1=fopen(trame,"wb+");
fclose(fp1);
__DBG_LOG("Creation Arborescence et fichier de lancement");
//*********Reception Image*********
..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
//*****fin de reception image********
if (iLink->bImageComplete)
{
while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
if (iLink->bRecvStopRequest)
break;
iLink->flushOldPackets();
int i=iLink->nRecvImageID;

//Création des fichiers contenant les buffer d'images
sprintf(trame,"%s\\image_ID_%i",File,i);

/****la a chaque fois il m'affiche A@****
__DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);

//******Ecriture des donnees dans le fichier****
HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hfl==INVALID_HANDLE_VALUE){
__DBG_LOG("Erreur d'ouverture du fichier");
return NULL;
}
DWORD dWrited;
int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
if(erreur==0){
DWORD error=GetLastError();
__DBG_LOG("erreur:%s",error);
}
CloseHandle(hfl);
__DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
}



-------------------------------
Réponse au message :
-------------------------------

> Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> >
> > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> >
> > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> >
> > Voici mon code:
> >
> >

> > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > if(hfl==INVALID_HANDLE_VALUE){
> > __DBG_LOG("Erreur d'ouverture du fichier");
> > return NULL;
> > }
> > DWORD dWrited;
> > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > if(erreur==0){
> > DWORD error=GetLastError();
> > __DBG_LOG("erreur:%s",error);
> > }
> > CloseHandle(hfl);
> >

> >
> > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
>
vendredi 8 août 2003 à 11:09:35 | Re : probleme irregulier avec FileWrite

poseidon2

J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h

Bone chance



-------------------------------
Réponse au message :
-------------------------------

> Un peu plus de prog. sans probleme j'en est plein
>
>

> void *ImageLink::imageRecvThread(void *pParam)
> {
> ImageLink *iLink = (ImageLink*)pParam;
> int nIndex = 0;
> int nSizeRecv = 0;
> unsigned int nPacketCounter = 0;
> int i=0;
> char File[256];
> struct tm *stime_dir;
> char trame[150];
> //********Creation Arborescence******
> CreateDirectory("film",NULL);
> time(&time_dir);
> stime_dir = localtime(&time_dir);
> sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> int existe=CreateDirectory(File,NULL);
> if(existe==0){
> __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> return NULL;
> }
> //Création du fichier de lancement de la video
> sprintf(trame,"%s\\image_ID_",File);
> FILE *fp1=fopen(trame,"wb+");
> fclose(fp1);
> __DBG_LOG("Creation Arborescence et fichier de lancement");
> //*********Reception Image*********
> ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> //*****fin de reception image********
> if (iLink->bImageComplete)
> {
> while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> if (iLink->bRecvStopRequest)
> break;
> iLink->flushOldPackets();
> int i=iLink->nRecvImageID;
>
> //Création des fichiers contenant les buffer d'images
> sprintf(trame,"%s\\image_ID_%i",File,i);
>
> /****la a chaque fois il m'affiche A@****
> __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
>
> //******Ecriture des donnees dans le fichier****
> HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> if(hfl==INVALID_HANDLE_VALUE){
> __DBG_LOG("Erreur d'ouverture du fichier");
> return NULL;
> }
> DWORD dWrited;
> int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> if(erreur==0){
> DWORD error=GetLastError();
> __DBG_LOG("erreur:%s",error);
> }
> CloseHandle(hfl);
> __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> }
>

>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > >
> > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > >
> > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > >
> > > Voici mon code:
> > >
> > >

> > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > if(hfl==INVALID_HANDLE_VALUE){
> > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > return NULL;
> > > }
> > > DWORD dWrited;
> > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > if(erreur==0){
> > > DWORD error=GetLastError();
> > > __DBG_LOG("erreur:%s",error);
> > > }
> > > CloseHandle(hfl);
> > >

> > >
> > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> >
>
vendredi 8 août 2003 à 11:27:59 | Re : probleme irregulier avec FileWrite

BruNews

Administrateur CodeS-SourceS
Bon alors faudrait nettoyer tout cela en 1er. On fait du win32 ou autre chose mais pas de mixte.
Tu vires <time.h> struct tm et tous ces machins, utilise GetLocalTime(...) etc.
sprintf(File,"film... aura son remplaçant win32 aussi, si tu ne trouves pas je te fournirai.
FILE *fp1=fopen... nenni, CreateFile, tout flux est obsolete sur win32.
En avant, avec du code propre on pourra finaliser correctement.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h
>
> Bone chance
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Un peu plus de prog. sans probleme j'en est plein
> >
> >

> > void *ImageLink::imageRecvThread(void *pParam)
> > {
> > ImageLink *iLink = (ImageLink*)pParam;
> > int nIndex = 0;
> > int nSizeRecv = 0;
> > unsigned int nPacketCounter = 0;
> > int i=0;
> > char File[256];
> > struct tm *stime_dir;
> > char trame[150];
> > //********Creation Arborescence******
> > CreateDirectory("film",NULL);
> > time(&time_dir);
> > stime_dir = localtime(&time_dir);
> > sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> > int existe=CreateDirectory(File,NULL);
> > if(existe==0){
> > __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> > return NULL;
> > }
> > //Création du fichier de lancement de la video
> > sprintf(trame,"%s\\image_ID_",File);
> > FILE *fp1=fopen(trame,"wb+");
> > fclose(fp1);
> > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > //*********Reception Image*********
> > ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> > //*****fin de reception image********
> > if (iLink->bImageComplete)
> > {
> > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > if (iLink->bRecvStopRequest)
> > break;
> > iLink->flushOldPackets();
> > int i=iLink->nRecvImageID;
> >
> > //Création des fichiers contenant les buffer d'images
> > sprintf(trame,"%s\\image_ID_%i",File,i);
> >
> > /****la a chaque fois il m'affiche A@****
> > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> >
> > //******Ecriture des donnees dans le fichier****
> > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > if(hfl==INVALID_HANDLE_VALUE){
> > __DBG_LOG("Erreur d'ouverture du fichier");
> > return NULL;
> > }
> > DWORD dWrited;
> > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > if(erreur==0){
> > DWORD error=GetLastError();
> > __DBG_LOG("erreur:%s",error);
> > }
> > CloseHandle(hfl);
> > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > }
> >

> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > > >
> > > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > > >
> > > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > > >
> > > > Voici mon code:
> > > >
> > > >

> > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > return NULL;
> > > > }
> > > > DWORD dWrited;
> > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > if(erreur==0){
> > > > DWORD error=GetLastError();
> > > > __DBG_LOG("erreur:%s",error);
> > > > }
> > > > CloseHandle(hfl);
> > > >

> > > >
> > > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> > >
> >
>
vendredi 8 août 2003 à 14:46:02 | Re : probleme irregulier avec FileWrite

poseidon2

Je pense avoir fait le tri si ce n'est que dans les bibliotheque de fonction Win32 j'ai trouver wsprintf pour remplacer sprintf et que je trouve ca louche.
L'érreur est toujours la même mais le code ressemble maintenant a:


ImageLink *iLink = (ImageLink*)pParam;
int nIndex = 0;
int nSizeRecv = 0;
unsigned int nPacketCounter = 0;
int i=0;
char File[256];
char trame[150];

//********Creation Arborescence******
//***recuperation heure***
CreateDirectory("film",NULL);
SYSTEMTIME SystemTime;
GetLocalTime(&SystemTime);
wsprintf(File,"film\\film_%02d-%02d_%02dH%02d", SystemTime.wDay, SystemTime.wMonth, SystemTime.wHour, SystemTime.wMinute);
//****creation******
int existe=CreateDirectory(File,NULL);
if(existe==0){
__DBG_LOG("Attention veillez a ne pas declenché eux connection dans la même minute");
return NULL;
}
//****fichier lancement video**
wsprintf(trame,"%s\\image_ID_",File);
HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_READONLY,NULL);
if(hfl==INVALID_HANDLE_VALUE){
__DBG_LOG("Erreur d'ouverture du fichier");
return NULL;
}
CloseHandle(hfl);
__DBG_LOG("Creation Arborescence et fichier de lancement");


//*********Reception Image*********
...............................................
//********fin reception*********

if (iLink->bImageComplete)
{
while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
if (iLink->bRecvStopRequest)
break;
iLink->flushOldPackets();
int i=iLink->nRecvImageID;

//Création des fichiers contenant les buffer d'images
wsprintf(trame,"%s\\image_ID_%i",File,i);
__DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
//******Ecriture des donnees dans le fichier****
HANDLE hfl2 = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hfl2==INVALID_HANDLE_VALUE){
__DBG_LOG("Erreur d'ouverture du fichier");
return NULL;
}
DWORD dWrited;
int erreur=WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
if(erreur==0){
DWORD error=GetLastError();
__DBG_LOG("erreur:%s",error);
}
CloseHandle(hfl2);
__DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
}


C'est un peu mieux



-------------------------------
Réponse au message :
-------------------------------

> Bon alors faudrait nettoyer tout cela en 1er. On fait du win32 ou autre chose mais pas de mixte.
> Tu vires <time.h> struct tm et tous ces machins, utilise GetLocalTime(...) etc.
> sprintf(File,"film... aura son remplaçant win32 aussi, si tu ne trouves pas je te fournirai.
> FILE *fp1=fopen... nenni, CreateFile, tout flux est obsolete sur win32.
> En avant, avec du code propre on pourra finaliser correctement.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h
> >
> > Bone chance
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Un peu plus de prog. sans probleme j'en est plein
> > >
> > >

> > > void *ImageLink::imageRecvThread(void *pParam)
> > > {
> > > ImageLink *iLink = (ImageLink*)pParam;
> > > int nIndex = 0;
> > > int nSizeRecv = 0;
> > > unsigned int nPacketCounter = 0;
> > > int i=0;
> > > char File[256];
> > > struct tm *stime_dir;
> > > char trame[150];
> > > //********Creation Arborescence******
> > > CreateDirectory("film",NULL);
> > > time(&time_dir);
> > > stime_dir = localtime(&time_dir);
> > > sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> > > int existe=CreateDirectory(File,NULL);
> > > if(existe==0){
> > > __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> > > return NULL;
> > > }
> > > //Création du fichier de lancement de la video
> > > sprintf(trame,"%s\\image_ID_",File);
> > > FILE *fp1=fopen(trame,"wb+");
> > > fclose(fp1);
> > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > > //*********Reception Image*********
> > > ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> > > //*****fin de reception image********
> > > if (iLink->bImageComplete)
> > > {
> > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > if (iLink->bRecvStopRequest)
> > > break;
> > > iLink->flushOldPackets();
> > > int i=iLink->nRecvImageID;
> > >
> > > //Création des fichiers contenant les buffer d'images
> > > sprintf(trame,"%s\\image_ID_%i",File,i);
> > >
> > > /****la a chaque fois il m'affiche A@****
> > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > >
> > > //******Ecriture des donnees dans le fichier****
> > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > if(hfl==INVALID_HANDLE_VALUE){
> > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > return NULL;
> > > }
> > > DWORD dWrited;
> > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > if(erreur==0){
> > > DWORD error=GetLastError();
> > > __DBG_LOG("erreur:%s",error);
> > > }
> > > CloseHandle(hfl);
> > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > }
> > >

> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > > > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > > > >
> > > > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > > > >
> > > > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > > > >
> > > > > Voici mon code:
> > > > >
> > > > >

> > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > return NULL;
> > > > > }
> > > > > DWORD dWrited;
> > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > if(erreur==0){
> > > > > DWORD error=GetLastError();
> > > > > __DBG_LOG("erreur:%s",error);
> > > > > }
> > > > > CloseHandle(hfl);
> > > > >

> > > > >
> > > > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> > > >
> > >
> >
>
vendredi 8 août 2003 à 15:05:31 | Re : probleme irregulier avec FileWrite

BruNews

Administrateur CodeS-SourceS
bon c'est mieux, wsprintf ne vaut guere mieux(tres lent) que sprintf mais on reglera son sort ensuite.
Pour ecriture comme pour lecture:
int erreur=WriteFile(...
erreur est inutile, suffit de:
dWrited = 0; // voila qui dira vraiment si erreur
WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
if(dWrited != tRecvImageBuffers->nSize) Y A ERREUR !

Voila recompose deja pour les 2 fois ainsi et teste si erreurs.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Je pense avoir fait le tri si ce n'est que dans les bibliotheque de fonction Win32 j'ai trouver wsprintf pour remplacer sprintf et que je trouve ca louche.
> L'érreur est toujours la même mais le code ressemble maintenant a:
>
>

> ImageLink *iLink = (ImageLink*)pParam;
> int nIndex = 0;
> int nSizeRecv = 0;
> unsigned int nPacketCounter = 0;
> int i=0;
> char File[256];
> char trame[150];
>
> //********Creation Arborescence******
> //***recuperation heure***
> CreateDirectory("film",NULL);
> SYSTEMTIME SystemTime;
> GetLocalTime(&SystemTime);
> wsprintf(File,"film\\film_%02d-%02d_%02dH%02d", SystemTime.wDay, SystemTime.wMonth, SystemTime.wHour, SystemTime.wMinute);
> //****creation******
> int existe=CreateDirectory(File,NULL);
> if(existe==0){
> __DBG_LOG("Attention veillez a ne pas declenché eux connection dans la même minute");
> return NULL;
> }
> //****fichier lancement video**
> wsprintf(trame,"%s\\image_ID_",File);
> HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_READONLY,NULL);
> if(hfl==INVALID_HANDLE_VALUE){
> __DBG_LOG("Erreur d'ouverture du fichier");
> return NULL;
> }
> CloseHandle(hfl);
> __DBG_LOG("Creation Arborescence et fichier de lancement");
>
>
> //*********Reception Image*********
> ...............................................
> //********fin reception*********
>
> if (iLink->bImageComplete)
> {
> while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> if (iLink->bRecvStopRequest)
> break;
> iLink->flushOldPackets();
> int i=iLink->nRecvImageID;
>
> //Création des fichiers contenant les buffer d'images
> wsprintf(trame,"%s\\image_ID_%i",File,i);
> __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> //******Ecriture des donnees dans le fichier****
> HANDLE hfl2 = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> if(hfl2==INVALID_HANDLE_VALUE){
> __DBG_LOG("Erreur d'ouverture du fichier");
> return NULL;
> }
> DWORD dWrited;
> int erreur=WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> if(erreur==0){
> DWORD error=GetLastError();
> __DBG_LOG("erreur:%s",error);
> }
> CloseHandle(hfl2);
> __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> }
>

>
> C'est un peu mieux
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bon alors faudrait nettoyer tout cela en 1er. On fait du win32 ou autre chose mais pas de mixte.
> > Tu vires <time.h> struct tm et tous ces machins, utilise GetLocalTime(...) etc.
> > sprintf(File,"film... aura son remplaçant win32 aussi, si tu ne trouves pas je te fournirai.
> > FILE *fp1=fopen... nenni, CreateFile, tout flux est obsolete sur win32.
> > En avant, avec du code propre on pourra finaliser correctement.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h
> > >
> > > Bone chance
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Un peu plus de prog. sans probleme j'en est plein
> > > >
> > > >

> > > > void *ImageLink::imageRecvThread(void *pParam)
> > > > {
> > > > ImageLink *iLink = (ImageLink*)pParam;
> > > > int nIndex = 0;
> > > > int nSizeRecv = 0;
> > > > unsigned int nPacketCounter = 0;
> > > > int i=0;
> > > > char File[256];
> > > > struct tm *stime_dir;
> > > > char trame[150];
> > > > //********Creation Arborescence******
> > > > CreateDirectory("film",NULL);
> > > > time(&time_dir);
> > > > stime_dir = localtime(&time_dir);
> > > > sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> > > > int existe=CreateDirectory(File,NULL);
> > > > if(existe==0){
> > > > __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> > > > return NULL;
> > > > }
> > > > //Création du fichier de lancement de la video
> > > > sprintf(trame,"%s\\image_ID_",File);
> > > > FILE *fp1=fopen(trame,"wb+");
> > > > fclose(fp1);
> > > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > > > //*********Reception Image*********
> > > > ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> > > > //*****fin de reception image********
> > > > if (iLink->bImageComplete)
> > > > {
> > > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > > if (iLink->bRecvStopRequest)
> > > > break;
> > > > iLink->flushOldPackets();
> > > > int i=iLink->nRecvImageID;
> > > >
> > > > //Création des fichiers contenant les buffer d'images
> > > > sprintf(trame,"%s\\image_ID_%i",File,i);
> > > >
> > > > /****la a chaque fois il m'affiche A@****
> > > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > > >
> > > > //******Ecriture des donnees dans le fichier****
> > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > return NULL;
> > > > }
> > > > DWORD dWrited;
> > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > if(erreur==0){
> > > > DWORD error=GetLastError();
> > > > __DBG_LOG("erreur:%s",error);
> > > > }
> > > > CloseHandle(hfl);
> > > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > > }
> > > >

> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > > > > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > > > > >
> > > > > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > > > > >
> > > > > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > > > > >
> > > > > > Voici mon code:
> > > > > >
> > > > > >

> > > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > > return NULL;
> > > > > > }
> > > > > > DWORD dWrited;
> > > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > > if(erreur==0){
> > > > > > DWORD error=GetLastError();
> > > > > > __DBG_LOG("erreur:%s",error);
> > > > > > }
> > > > > > CloseHandle(hfl);
> > > > > >

> > > > > >
> > > > > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> > > > >
> > > >
> > >
> >
>
vendredi 8 août 2003 à 15:34:44 | Re : probleme irregulier avec FileWrite

poseidon2

Je viens d'essayer en mettant:
if(dWrited != iLink->tRecvImageBuffers->nSize)
et cela ne m'a pas sortis d'erreur.....Par contre tu m'as dit: "2 fois" or je n'ai qu'un FileWrite.

-------------------------------
Réponse au message :
-------------------------------

> bon c'est mieux, wsprintf ne vaut guere mieux(tres lent) que sprintf mais on reglera son sort ensuite.
> Pour ecriture comme pour lecture:
> int erreur=WriteFile(...
> erreur est inutile, suffit de:
> dWrited = 0; // voila qui dira vraiment si erreur
> WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> if(dWrited != tRecvImageBuffers->nSize) Y A ERREUR !
>
> Voila recompose deja pour les 2 fois ainsi et teste si erreurs.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je pense avoir fait le tri si ce n'est que dans les bibliotheque de fonction Win32 j'ai trouver wsprintf pour remplacer sprintf et que je trouve ca louche.
> > L'érreur est toujours la même mais le code ressemble maintenant a:
> >
> >

> > ImageLink *iLink = (ImageLink*)pParam;
> > int nIndex = 0;
> > int nSizeRecv = 0;
> > unsigned int nPacketCounter = 0;
> > int i=0;
> > char File[256];
> > char trame[150];
> >
> > //********Creation Arborescence******
> > //***recuperation heure***
> > CreateDirectory("film",NULL);
> > SYSTEMTIME SystemTime;
> > GetLocalTime(&SystemTime);
> > wsprintf(File,"film\\film_%02d-%02d_%02dH%02d", SystemTime.wDay, SystemTime.wMonth, SystemTime.wHour, SystemTime.wMinute);
> > //****creation******
> > int existe=CreateDirectory(File,NULL);
> > if(existe==0){
> > __DBG_LOG("Attention veillez a ne pas declenché eux connection dans la même minute");
> > return NULL;
> > }
> > //****fichier lancement video**
> > wsprintf(trame,"%s\\image_ID_",File);
> > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_READONLY,NULL);
> > if(hfl==INVALID_HANDLE_VALUE){
> > __DBG_LOG("Erreur d'ouverture du fichier");
> > return NULL;
> > }
> > CloseHandle(hfl);
> > __DBG_LOG("Creation Arborescence et fichier de lancement");
> >
> >
> > //*********Reception Image*********
> > ...............................................
> > //********fin reception*********
> >
> > if (iLink->bImageComplete)
> > {
> > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > if (iLink->bRecvStopRequest)
> > break;
> > iLink->flushOldPackets();
> > int i=iLink->nRecvImageID;
> >
> > //Création des fichiers contenant les buffer d'images
> > wsprintf(trame,"%s\\image_ID_%i",File,i);
> > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > //******Ecriture des donnees dans le fichier****
> > HANDLE hfl2 = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > if(hfl2==INVALID_HANDLE_VALUE){
> > __DBG_LOG("Erreur d'ouverture du fichier");
> > return NULL;
> > }
> > DWORD dWrited;
> > int erreur=WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > if(erreur==0){
> > DWORD error=GetLastError();
> > __DBG_LOG("erreur:%s",error);
> > }
> > CloseHandle(hfl2);
> > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > }
> >

> >
> > C'est un peu mieux
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bon alors faudrait nettoyer tout cela en 1er. On fait du win32 ou autre chose mais pas de mixte.
> > > Tu vires <time.h> struct tm et tous ces machins, utilise GetLocalTime(...) etc.
> > > sprintf(File,"film... aura son remplaçant win32 aussi, si tu ne trouves pas je te fournirai.
> > > FILE *fp1=fopen... nenni, CreateFile, tout flux est obsolete sur win32.
> > > En avant, avec du code propre on pourra finaliser correctement.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h
> > > >
> > > > Bone chance
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Un peu plus de prog. sans probleme j'en est plein
> > > > >
> > > > >

> > > > > void *ImageLink::imageRecvThread(void *pParam)
> > > > > {
> > > > > ImageLink *iLink = (ImageLink*)pParam;
> > > > > int nIndex = 0;
> > > > > int nSizeRecv = 0;
> > > > > unsigned int nPacketCounter = 0;
> > > > > int i=0;
> > > > > char File[256];
> > > > > struct tm *stime_dir;
> > > > > char trame[150];
> > > > > //********Creation Arborescence******
> > > > > CreateDirectory("film",NULL);
> > > > > time(&time_dir);
> > > > > stime_dir = localtime(&time_dir);
> > > > > sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> > > > > int existe=CreateDirectory(File,NULL);
> > > > > if(existe==0){
> > > > > __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> > > > > return NULL;
> > > > > }
> > > > > //Création du fichier de lancement de la video
> > > > > sprintf(trame,"%s\\image_ID_",File);
> > > > > FILE *fp1=fopen(trame,"wb+");
> > > > > fclose(fp1);
> > > > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > > > > //*********Reception Image*********
> > > > > ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> > > > > //*****fin de reception image********
> > > > > if (iLink->bImageComplete)
> > > > > {
> > > > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > > > if (iLink->bRecvStopRequest)
> > > > > break;
> > > > > iLink->flushOldPackets();
> > > > > int i=iLink->nRecvImageID;
> > > > >
> > > > > //Création des fichiers contenant les buffer d'images
> > > > > sprintf(trame,"%s\\image_ID_%i",File,i);
> > > > >
> > > > > /****la a chaque fois il m'affiche A@****
> > > > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > > > >
> > > > > //******Ecriture des donnees dans le fichier****
> > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > return NULL;
> > > > > }
> > > > > DWORD dWrited;
> > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > if(erreur==0){
> > > > > DWORD error=GetLastError();
> > > > > __DBG_LOG("erreur:%s",error);
> > > > > }
> > > > > CloseHandle(hfl);
> > > > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > > > }
> > > > >

> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > > > > > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > > > > > BruNews, ciao...
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > > > > > >
> > > > > > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > > > > > >
> > > > > > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > > > > > >
> > > > > > > Voici mon code:
> > > > > > >
> > > > > > >

> > > > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > > > return NULL;
> > > > > > > }
> > > > > > > DWORD dWrited;
> > > > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > > > if(erreur==0){
> > > > > > > DWORD error=GetLastError();
> > > > > > > __DBG_LOG("erreur:%s",error);
> > > > > > > }
> > > > > > > CloseHandle(hfl);
> > > > > > >

> > > > > > >
> > > > > > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> > > > > >
> > > > >
> > > >
> > >
> >
>
vendredi 8 août 2003 à 15:38:20 | Re : probleme irregulier avec FileWrite

BruNews

Administrateur CodeS-SourceS
bah, me semblait qu'on avait parle de 2 ecritures... pas grave, je fatigue, vivement dimanche que je parte.
Alors si pas d'erreur va tout bon !!!
Quel est ton prob a ce point ?
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Je viens d'essayer en mettant:
> if(dWrited != iLink->tRecvImageBuffers->nSize)
> et cela ne m'a pas sortis d'erreur.....Par contre tu m'as dit: "2 fois" or je n'ai qu'un FileWrite.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > bon c'est mieux, wsprintf ne vaut guere mieux(tres lent) que sprintf mais on reglera son sort ensuite.
> > Pour ecriture comme pour lecture:
> > int erreur=WriteFile(...
> > erreur est inutile, suffit de:
> > dWrited = 0; // voila qui dira vraiment si erreur
> > WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > if(dWrited != tRecvImageBuffers->nSize) Y A ERREUR !
> >
> > Voila recompose deja pour les 2 fois ainsi et teste si erreurs.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Je pense avoir fait le tri si ce n'est que dans les bibliotheque de fonction Win32 j'ai trouver wsprintf pour remplacer sprintf et que je trouve ca louche.
> > > L'érreur est toujours la même mais le code ressemble maintenant a:
> > >
> > >

> > > ImageLink *iLink = (ImageLink*)pParam;
> > > int nIndex = 0;
> > > int nSizeRecv = 0;
> > > unsigned int nPacketCounter = 0;
> > > int i=0;
> > > char File[256];
> > > char trame[150];
> > >
> > > //********Creation Arborescence******
> > > //***recuperation heure***
> > > CreateDirectory("film",NULL);
> > > SYSTEMTIME SystemTime;
> > > GetLocalTime(&SystemTime);
> > > wsprintf(File,"film\\film_%02d-%02d_%02dH%02d", SystemTime.wDay, SystemTime.wMonth, SystemTime.wHour, SystemTime.wMinute);
> > > //****creation******
> > > int existe=CreateDirectory(File,NULL);
> > > if(existe==0){
> > > __DBG_LOG("Attention veillez a ne pas declenché eux connection dans la même minute");
> > > return NULL;
> > > }
> > > //****fichier lancement video**
> > > wsprintf(trame,"%s\\image_ID_",File);
> > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_READONLY,NULL);
> > > if(hfl==INVALID_HANDLE_VALUE){
> > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > return NULL;
> > > }
> > > CloseHandle(hfl);
> > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > >
> > >
> > > //*********Reception Image*********
> > > ...............................................
> > > //********fin reception*********
> > >
> > > if (iLink->bImageComplete)
> > > {
> > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > if (iLink->bRecvStopRequest)
> > > break;
> > > iLink->flushOldPackets();
> > > int i=iLink->nRecvImageID;
> > >
> > > //Création des fichiers contenant les buffer d'images
> > > wsprintf(trame,"%s\\image_ID_%i",File,i);
> > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > > //******Ecriture des donnees dans le fichier****
> > > HANDLE hfl2 = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > if(hfl2==INVALID_HANDLE_VALUE){
> > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > return NULL;
> > > }
> > > DWORD dWrited;
> > > int erreur=WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > if(erreur==0){
> > > DWORD error=GetLastError();
> > > __DBG_LOG("erreur:%s",error);
> > > }
> > > CloseHandle(hfl2);
> > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > }
> > >

> > >
> > > C'est un peu mieux
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bon alors faudrait nettoyer tout cela en 1er. On fait du win32 ou autre chose mais pas de mixte.
> > > > Tu vires <time.h> struct tm et tous ces machins, utilise GetLocalTime(...) etc.
> > > > sprintf(File,"film... aura son remplaçant win32 aussi, si tu ne trouves pas je te fournirai.
> > > > FILE *fp1=fopen... nenni, CreateFile, tout flux est obsolete sur win32.
> > > > En avant, avec du code propre on pourra finaliser correctement.
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h
> > > > >
> > > > > Bone chance
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Un peu plus de prog. sans probleme j'en est plein
> > > > > >
> > > > > >

> > > > > > void *ImageLink::imageRecvThread(void *pParam)
> > > > > > {
> > > > > > ImageLink *iLink = (ImageLink*)pParam;
> > > > > > int nIndex = 0;
> > > > > > int nSizeRecv = 0;
> > > > > > unsigned int nPacketCounter = 0;
> > > > > > int i=0;
> > > > > > char File[256];
> > > > > > struct tm *stime_dir;
> > > > > > char trame[150];
> > > > > > //********Creation Arborescence******
> > > > > > CreateDirectory("film",NULL);
> > > > > > time(&time_dir);
> > > > > > stime_dir = localtime(&time_dir);
> > > > > > sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> > > > > > int existe=CreateDirectory(File,NULL);
> > > > > > if(existe==0){
> > > > > > __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> > > > > > return NULL;
> > > > > > }
> > > > > > //Création du fichier de lancement de la video
> > > > > > sprintf(trame,"%s\\image_ID_",File);
> > > > > > FILE *fp1=fopen(trame,"wb+");
> > > > > > fclose(fp1);
> > > > > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > > > > > //*********Reception Image*********
> > > > > > ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> > > > > > //*****fin de reception image********
> > > > > > if (iLink->bImageComplete)
> > > > > > {
> > > > > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > > > > if (iLink->bRecvStopRequest)
> > > > > > break;
> > > > > > iLink->flushOldPackets();
> > > > > > int i=iLink->nRecvImageID;
> > > > > >
> > > > > > //Création des fichiers contenant les buffer d'images
> > > > > > sprintf(trame,"%s\\image_ID_%i",File,i);
> > > > > >
> > > > > > /****la a chaque fois il m'affiche A@****
> > > > > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > > > > >
> > > > > > //******Ecriture des donnees dans le fichier****
> > > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > > return NULL;
> > > > > > }
> > > > > > DWORD dWrited;
> > > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > > if(erreur==0){
> > > > > > DWORD error=GetLastError();
> > > > > > __DBG_LOG("erreur:%s",error);
> > > > > > }
> > > > > > CloseHandle(hfl);
> > > > > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > > > > }
> > > > > >

> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > > > > > > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > > > > > > BruNews, ciao...
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > > > > > > >
> > > > > > > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > > > > > > >
> > > > > > > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > > > > > > >
> > > > > > > > Voici mon code:
> > > > > > > >
> > > > > > > >

> > > > > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > > > > return NULL;
> > > > > > > > }
> > > > > > > > DWORD dWrited;
> > > > > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > > > > if(erreur==0){
> > > > > > > > DWORD error=GetLastError();
> > > > > > > > __DBG_LOG("erreur:%s",error);
> > > > > > > > }
> > > > > > > > CloseHandle(hfl);
> > > > > > > >

> > > > > > > >
> > > > > > > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
vendredi 8 août 2003 à 15:40:20 | Re : probleme irregulier avec FileWrite

poseidon2

Et ben que les données ecrites sont parfois remplacé par des carrés....(PS:effectivement il y avait bien un deuxieme FileWrite mais j'ai laissé topber pour essayé de trouver pkoi j'avais des carrés)



-------------------------------
Réponse au message :
-------------------------------

> bah, me semblait qu'on avait parle de 2 ecritures... pas grave, je fatigue, vivement dimanche que je parte.
> Alors si pas d'erreur va tout bon !!!
> Quel est ton prob a ce point ?
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Je viens d'essayer en mettant:
> > if(dWrited != iLink->tRecvImageBuffers->nSize)
> > et cela ne m'a pas sortis d'erreur.....Par contre tu m'as dit: "2 fois" or je n'ai qu'un FileWrite.
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > bon c'est mieux, wsprintf ne vaut guere mieux(tres lent) que sprintf mais on reglera son sort ensuite.
> > > Pour ecriture comme pour lecture:
> > > int erreur=WriteFile(...
> > > erreur est inutile, suffit de:
> > > dWrited = 0; // voila qui dira vraiment si erreur
> > > WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > if(dWrited != tRecvImageBuffers->nSize) Y A ERREUR !
> > >
> > > Voila recompose deja pour les 2 fois ainsi et teste si erreurs.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Je pense avoir fait le tri si ce n'est que dans les bibliotheque de fonction Win32 j'ai trouver wsprintf pour remplacer sprintf et que je trouve ca louche.
> > > > L'érreur est toujours la même mais le code ressemble maintenant a:
> > > >
> > > >

> > > > ImageLink *iLink = (ImageLink*)pParam;
> > > > int nIndex = 0;
> > > > int nSizeRecv = 0;
> > > > unsigned int nPacketCounter = 0;
> > > > int i=0;
> > > > char File[256];
> > > > char trame[150];
> > > >
> > > > //********Creation Arborescence******
> > > > //***recuperation heure***
> > > > CreateDirectory("film",NULL);
> > > > SYSTEMTIME SystemTime;
> > > > GetLocalTime(&SystemTime);
> > > > wsprintf(File,"film\\film_%02d-%02d_%02dH%02d", SystemTime.wDay, SystemTime.wMonth, SystemTime.wHour, SystemTime.wMinute);
> > > > //****creation******
> > > > int existe=CreateDirectory(File,NULL);
> > > > if(existe==0){
> > > > __DBG_LOG("Attention veillez a ne pas declenché eux connection dans la même minute");
> > > > return NULL;
> > > > }
> > > > //****fichier lancement video**
> > > > wsprintf(trame,"%s\\image_ID_",File);
> > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_READONLY,NULL);
> > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > return NULL;
> > > > }
> > > > CloseHandle(hfl);
> > > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > > >
> > > >
> > > > //*********Reception Image*********
> > > > ...............................................
> > > > //********fin reception*********
> > > >
> > > > if (iLink->bImageComplete)
> > > > {
> > > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > > if (iLink->bRecvStopRequest)
> > > > break;
> > > > iLink->flushOldPackets();
> > > > int i=iLink->nRecvImageID;
> > > >
> > > > //Création des fichiers contenant les buffer d'images
> > > > wsprintf(trame,"%s\\image_ID_%i",File,i);
> > > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > > > //******Ecriture des donnees dans le fichier****
> > > > HANDLE hfl2 = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > if(hfl2==INVALID_HANDLE_VALUE){
> > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > return NULL;
> > > > }
> > > > DWORD dWrited;
> > > > int erreur=WriteFile(hfl2, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > if(erreur==0){
> > > > DWORD error=GetLastError();
> > > > __DBG_LOG("erreur:%s",error);
> > > > }
> > > > CloseHandle(hfl2);
> > > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > > }
> > > >

> > > >
> > > > C'est un peu mieux
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Bon alors faudrait nettoyer tout cela en 1er. On fait du win32 ou autre chose mais pas de mixte.
> > > > > Tu vires <time.h> struct tm et tous ces machins, utilise GetLocalTime(...) etc.
> > > > > sprintf(File,"film... aura son remplaçant win32 aussi, si tu ne trouves pas je te fournirai.
> > > > > FILE *fp1=fopen... nenni, CreateFile, tout flux est obsolete sur win32.
> > > > > En avant, avec du code propre on pourra finaliser correctement.
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > J'ai oublié de preciser que toute les variables non declaré le son en global ou dans le .h
> > > > > >
> > > > > > Bone chance
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Un peu plus de prog. sans probleme j'en est plein
> > > > > > >
> > > > > > >

> > > > > > > void *ImageLink::imageRecvThread(void *pParam)
> > > > > > > {
> > > > > > > ImageLink *iLink = (ImageLink*)pParam;
> > > > > > > int nIndex = 0;
> > > > > > > int nSizeRecv = 0;
> > > > > > > unsigned int nPacketCounter = 0;
> > > > > > > int i=0;
> > > > > > > char File[256];
> > > > > > > struct tm *stime_dir;
> > > > > > > char trame[150];
> > > > > > > //********Creation Arborescence******
> > > > > > > CreateDirectory("film",NULL);
> > > > > > > time(&time_dir);
> > > > > > > stime_dir = localtime(&time_dir);
> > > > > > > sprintf(File,"film\\film_%02d-%02d_%02dH%02d", stime_dir->tm_mday, stime_dir->tm_mon+1, stime_dir->tm_hour, stime_dir->tm_min);
> > > > > > > int existe=CreateDirectory(File,NULL);
> > > > > > > if(existe==0){
> > > > > > > __DBG_LOG("Attention veillez a ne pas declenché deux connection dans la même minute");
> > > > > > > return NULL;
> > > > > > > }
> > > > > > > //Création du fichier de lancement de la video
> > > > > > > sprintf(trame,"%s\\image_ID_",File);
> > > > > > > FILE *fp1=fopen(trame,"wb+");
> > > > > > > fclose(fp1);
> > > > > > > __DBG_LOG("Creation Arborescence et fichier de lancement");
> > > > > > > //*********Reception Image*********
> > > > > > > ..............(Cette partie n'est pas de moi mais a toujours tres bien marché, quoi que je fasse)).......
> > > > > > > //*****fin de reception image********
> > > > > > > if (iLink->bImageComplete)
> > > > > > > {
> > > > > > > while ((iLink->processRecvImage() == ILINK_ERR_TIMEOUT) && !iLink->bRecvStopRequest);
> > > > > > > if (iLink->bRecvStopRequest)
> > > > > > > break;
> > > > > > > iLink->flushOldPackets();
> > > > > > > int i=iLink->nRecvImageID;
> > > > > > >
> > > > > > > //Création des fichiers contenant les buffer d'images
> > > > > > > sprintf(trame,"%s\\image_ID_%i",File,i);
> > > > > > >
> > > > > > > /****la a chaque fois il m'affiche A@****
> > > > > > > __DBG_LOG("%s",iLink->tRecvImageBuffers->pImage);
> > > > > > >
> > > > > > > //******Ecriture des donnees dans le fichier****
> > > > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > > > return NULL;
> > > > > > > }
> > > > > > > DWORD dWrited;
> > > > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > > > if(erreur==0){
> > > > > > > DWORD error=GetLastError();
> > > > > > > __DBG_LOG("erreur:%s",error);
> > > > > > > }
> > > > > > > CloseHandle(hfl);
> > > > > > > __DBG_LOG("ImageLink::imageRecvThread: New image is #%d", iLink->nRecvImageID);
> > > > > > > }
> > > > > > >

> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > Tu sais, il faudrait un peu plus de ton prog pour trouver l'erreur.
> > > > > > > > Rassure toi api win32 n'a RIEN d'aleatoire, va tip top.
> > > > > > > > BruNews, ciao...
> > > > > > > >
> > > > > > > >
> > > > > > > > -------------------------------
> > > > > > > > Réponse au message :
> > > > > > > > -------------------------------
> > > > > > > >
> > > > > > > > > Mon probleme c'est que , certaine fois,FileWrite ecrit a la place des caracteres seulement des carrés style:
> > > > > > > > >
> > > > > > > > > J'ai logué le FileWrite et le CréateFile mais aucun ne me sors une erreur.
> > > > > > > > >
> > > > > > > > > De plus j'ai aussi demandé d'afficher le buffer en question mais a chaque fois il me donne les deux premier caractere A@. Je dis biena chaque fois. Pourtant apres c'est des fois remplacé par des carrés dans le fichier.....
> > > > > > > > >
> > > > > > > > > Voici mon code:
> > > > > > > > >
> > > > > > > > >

> > > > > > > > > HANDLE hfl = CreateFile(trame,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
> > > > > > > > > if(hfl==INVALID_HANDLE_VALUE){
> > > > > > > > > __DBG_LOG("Erreur d'ouverture du fichier");
> > > > > > > > > return NULL;
> > > > > > > > > }
> > > > > > > > > DWORD dWrited;
> > > > > > > > > int erreur=WriteFile(hfl, iLink->tRecvImageBuffers->pImage, iLink->tRecvImageBuffers->nSize, &dWrited, NULL);
> > > > > > > > > if(erreur==0){
> > > > > > > > > DWORD error=GetLastError();
> > > > > > > > > __DBG_LOG("erreur:%s",error);
> > > > > > > > > }
> > > > > > > > > CloseHandle(hfl);
> > > > > > > > >

> > > > > > > > >
> > > > > > > > > Ce que je bne comprend pas c'est que ca a l'air vraiment aléatoire.....
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

1 2

Cette discussion est classée dans : code, erreur, probleme, hfl, filewrite


Répondre à ce message

Sujets en rapport avec ce message

Probleme de compilatino d'une source [ par BouletVSpredator ] Salut :o) J'essayes en ce moment de faire un hook sur winsock, en faisans une petite recherche je suis tombé sur la source de cosmobob (http://www.c Probleme avec heritage [ par jonas03 ] Bonjour a tous, J'ai un problème dans mon code source et j'essaie depuis plusieurs jours a trouver mon erreur mais en vain. Mon code contient de l'hér erreur embetante [ par habib1919 ] bonjour,j utilise la bibliotheque opencv en c++,et à chaque que je veux compiler un code avec code blocs vista m affiche une erreur que j ai pas pu la SendMessage: erreur!! [ par sunvi ] Bonjour, j'essaie de simuler le click sur un bouton d'une barre d'outils, j'ai le handle de ma fenêtre,l'id de mon controle, j'envoie le message suiva Portabilité [ par Arnauti ] Bonjour, j'ai réalisé un petit programme sur l'algorithme d'Euclide. Jusque là tout va bien. Cependant, j'ai un probleme de portabilité windows/linux Probleme d'execution de commande dos [ par Mowti ] Bonjour, Lorsque que j'exécute : [code=c]system("fsutil file createnew c:\test\test.txt 1048576");[/code] Le programme m'écrit "Utilisation : .... Pa Probleme avec API mysql [ par Kaioshin12 ] Bonjour à tous, Je suis débutant en C++ et j'ai un petit soucis avec l'API mysql. En effet, je fais une petite appli en C++ avec une connexion à une creation librairie code block [ par bumbob ] Bonsoior,je travaille sous win XP et je viens d'installer code block en suivant scrupuleusement les indication données par le site du zero : http://ww Probleme de driver [ par Kurapika69 ] Bonjours, Je suis un débutant sur linux et j' ai rencontré un petit problème. J'essais d'installer un driver pour le produit vga2usb duo de epiphan s erreur " instruction [ par perasma00 ] Bonjour a tous, je suis nouveau ici et j'ai besoin de votre aide.. voila mon probleme: j'ai creé une dll sous visual studio 2005, que je vais ut


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,669 sec (4)

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