Accueil > Forum > > > > probleme irregulier avec FileWrite
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
|
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
|
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
|
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
|
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..... > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
|
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|