Lecture dans un fichier ne donnant rien
Bonjour,
J'utilise un TFileStream pour lire dans un fichier et la propriété size me donne la bonne taille de fichier. J'initialise la position du curseur de lecture au début du fichier.
Et pourtant, je n'arrive pas à le lire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| TFileStream *Fichier;
try {
Fichier = new TFileStream(OpenDialog1->FileName, fmOpenRead || fmShareDenyWrite);
Label1->Caption = IntToStr(Fichier->Size);
}
catch ( ... )
{
Sysutils::Beep();
MessageDlg("Impossible d'ouvrir le fichier. Action annulée.", mtError, TMsgDlgButtons() << mbOK, 0);
TCPC1->Disconnect();
Button2->Enabled = true;
Button3->Enabled = false;
delete Fichier;
return;
}
TMemoryStream *Buffer = new TMemoryStream();
void *BufferTemp;
Buffer->Clear();
Label4->Caption = IntToStr(I);
Fichier->Seek(0, soFromBeginning);
OctetTransferes = Fichier->Read(BufferTemp, 512 * 1024);
Label3->Caption = IntToStr(OctetTransferes);
Buffer->Read(BufferTemp, OctetTransferes);
Label2->Caption = IntToStr(Buffer->Size); |
Les label ne sont la qe pour m'indiquer les valeurs à chaque étape et le buffer temp a été ajouter pour vérifier si le problème ne venait pas du memorystream.
Donc, la taille du fichier est toujours bonne (inférieur à 512ko) mais OctetTransferes est toujours égal à 0.
Une idée pour résoudre ce problème simplement et puis-je directement mettre Buffer à la place de BufferTemp pour la lecture du fichier?
Merci.