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