Bonjour,
j'ai besoin de réaliser une fonction qui renvoie une morceau de fichier ds un buffer. Là où ca se complique, c'est que le morceau de fichier est de taille variable![]()
voila commeje m'y suis pris :
j'appelle cette fonction en faisant comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TFichier.getBlock(BlockNum : int64; buffer : array of char); var FileStream : TFileStream; begin FileStream := TFileStream.Create(FileName,fmOpenRead);//creation stream FileStream.Seek(blockSize*BlockNum,soFromBeginning); //deplacement au bon endroit FileStream.Read(buffer,blockSize); //enregistrement ds buffer FileStream.Free; //destruction stream end;
J'ai une erreure de compilation lorsque j'appelle ma fonction getBlock :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var buffer : array of char; begin setLength(buffer,8); //on fixe la taille a du buffer a 8 fichier := Tfichier.Create(fileChooser.FileName,8); //creation d'un fichier avec des block de taille 8 fichier.getBlock(1,buffer); //lecture du block 1
[Erreur] Unit1.pas(56): Types incompatibles : 'Array' et 'dynamic array'
quelqu'un pourriat il eclairé ma lanterne ?
Partager