IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Tableau ouvert / dynamique ?


Sujet :

Langage Delphi

  1. #1
    Dry
    Dry est déconnecté
    Membre du Club

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 48
    Points : 50
    Points
    50
    Par défaut Tableau ouvert / dynamique ?
    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 :
    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'appelle cette fonction en faisant comme ceci :
    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
    J'ai une erreure de compilation lorsque j'appelle ma fonction getBlock :
    [Erreur] Unit1.pas(56): Types incompatibles : 'Array' et 'dynamic array'

    quelqu'un pourriat il eclairé ma lanterne ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Il me semble qu'en faisant un truc comme cela tu devrais t'en sortir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var
      buffer : array of char;
      iLen : Integer;
    begin
      iLen := length(buffer);
      stream.write(iLen , sizeof(iLen));
      if iLen>0 then
        stream.write(buffer[0],iLen*sizeof(buffer[0]));
    end
    "It's more fun to compute !"

  3. #3
    Dry
    Dry est déconnecté
    Membre du Club

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 48
    Points : 50
    Points
    50
    Par défaut
    excat !
    en bidouillant avec le buffer[0], j'ai réussi a m'en sortir

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. filtrer tableau croisé dynamique sous excel
    Par kernel57 dans le forum Excel
    Réponses: 7
    Dernier message: 17/11/2006, 14h18
  2. Tableau croisé dynamique
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 26/12/2005, 18h05
  3. tableau Croisé Dynamique
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 10h36
  4. tableau croisé dynamique sous delphi, comment ?
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2005, 09h33
  5. [Tableau] Allocation dynamique du contenu
    Par VincenzoR dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 08/05/2004, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo