Bonjour à tous !
J'essaie de lire un gros fichier par blocs.
N'ayant pas compris le FileMapping, j'essaie plutôt avec des classes trouvées dans C++Builder : TFileStream et TMemoryStream.
J'ai un doute quant au fonctionnement de la méthode CopyFrom qui devrait me permettre
de copier des blocs (60000 bytes dans l'exemple ci-bas). En effet, dès que le dernier bloc est lu et copié vers un TMemoryStream - parceque celui-ci ne mesure pas 60000 bytes - ça provoque un "Stream Read Error" que je ne peux même pas contourner avec un try / catch ?!?!?
Si vous avez des suggestions...
Voir le code source suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 TBytes myBytes; std::auto_ptr<TFileStream> LFileStream(new TFileStream(fileName.c_str(), fmOpenRead)); std::auto_ptr<TBytesStream> myBytesStream(new TBytesStream(myBytes)); long res=1; while(res>0) { try{ res = myBytesStream->CopyFrom(LFileStream.get(), 60000); } catch(char *excp){ } }
Partager