Fichier AVI + Taille de fichier

Fichier AVI + Taille de fichier - C++ - Programmation

Marsh Posté le 01-06-2005 à 17:39:39    

Bonjour à tous,
 
alors voila j'ai un problème de récupération de la taille d'un fichier et j'ai également un problème de compréhention de certains éléments. Je développe sous Borland C++ Builder 5.
 
Voici le code source :

Code :
  1. void __fastcall TForm1::ouvrirClick(TObject *Sender)
  2. {
  3.   AVIFILEINFO Info;
  4.   PAVIFILE pFile;
  5.   AnsiString tmp;
  6.   int nOctet=0;
  7.   char *pPath;
  8.   if(Open->Execute())
  9.   {
  10.     pPath = Open->FileName.c_str();
  11.     //------------------------------------------
  12.     AVIFileInit();
  13.     AVIFileOpen(&pFile, pPath, OF_READ, 0);
  14.     AVIFileInfo(pFile,&Info,sizeof(Info));
  15.     AVIFileRelease(pFile);
  16.     AVIFileExit();
  17.     //------------------------------------------
  18.     FILE* fic = fopen(pPath, "rb" );
  19.     nOctet = fseek(fic, 0, SEEK_END);
  20.     fclose(fic);
  21.     taille->Text = nOctet;
  22.   }
  23. }


 
J'arrive à lire le fichier sans problème.
J'arrive a sotcker les données du fichier AVI dans la structure AVIFILEINFO.
Ce que je n'arrive pas à comprendre, ce sont les champs :

Code :
  1. DWORD dwMaxBytesPerSec; 
  2.     DWORD dwSuggestedBufferSize; 
  3.     DWORD dwScale;
  4.     DWORD dwRate;
  5.     DWORD dwLength;


 
dwLength correspond aux nombres total d'images du fichier AVI ?
 
En ce qui concerne la taille du fichier. J'ouvre un fichier qui devrait faire 35 894 188 octets et je n'obtient que 0. D'où pourrait venir mon problème ?
 
Voila je vous remerci d'avance pour votre aide.
 
 
PS: J'ai volontairement zappé les tests d'ouverture de fichier.

Reply

Marsh Posté le 01-06-2005 à 17:39:39   

Reply

Marsh Posté le 01-06-2005 à 17:57:06    

J'ai réussi à récupérer la taille du fichier.

Code :
  1. FichierHandle = FileOpen(pPath, fmOpenRead);
  2. nOctet = FileSeek(FichierHandle, 0, 2);
  3. FileClose(FichierHandle);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed