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 :

[BDS2006][delphi]aide relative à BlockRead


Sujet :

Langage Delphi

  1. #1
    Membre averti

    Homme Profil pro
    ingénieur, retraité
    Inscrit en
    Février 2007
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur, retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 230
    Points : 332
    Points
    332
    Par défaut [BDS2006][delphi]aide relative à BlockRead
    Bonjour,
    L'aide de BDS 2006 n’est pas très riche et parfois erronée.

    Pour BlockRead BDS2006 propose :
    Syntaxe

    [Delphi] function BlockRead(var F: file; var Buf: Type; Count: Integer): Integer; overload;

    [Delphi] function BlockRead(var F: file; var Buf: Type; Count: Integer; var Result: Integer): Integer; overload;

    Description
    F est une variable fichier non typée, Buf est une variable quelconque, Count est une expression de type Integer et AmtTransferred est une variable facultative également de type Integer.

    BlockRead lit au moins Count enregistrements à partir du fichier F et les transfère en mémoire en partant de l'octet occupé par Buf. Le nombre réel d'enregistrements entiers lus (inférieur ou égal à Count) est renvoyé dans AmtTransferred.

    Le bloc entier transféré occupe au plus Count * RecSize octets. RecSize est la taille de l'enregistrement qui a été indiquée lors de l'ouverture du fichier (ou 128 si elle a été omise).

    Si le bloc entier a été transféré, AmtTransferred est égal à Count.

    Si AmtTransferred est inférieur à Count, ReadBlock a atteint la fin du fichier avant la fin du transfert. Si la taille de l'enregistrement du fichier est supérieure à 1, AmtTransferred renvoie le nombre d'enregistrements entiers lus.

    Si AmtTransferred est omis, une erreur d'E/S se produit si le nombre d'enregistrements lus n'est pas égal à Count. Si la directive du compilateur $I+ est effective, les erreurs déclenchent une exception EInOutError

    Par analogie avec l'aide de Delphi 4 je présume que "AmtTransferred" correspond à "Result" de la 2° version de la syntaxe.
    Mais alors que BlockRead était une procédure elle est maintenant une fonction qui renvoie un entier, que contient cet entier ?

    Merci pour vos réponses.
    P Lautier

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut Paulfr,

    En effet, cela est sans doute une belle erreur dans l'aide.
    Sous D2009, j'ai la bonne déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure BlockRead(var F: File; var Buf; Count: Integer); overload;
    procedure BlockRead(var F: File; var Buf; Count: Integer; var AmtTransferred: Integer); overload;
    Juste une petite question. Bien que dans l'aide ce soit une fonction, es-tu sur que ce soit réellement le cas au niveau l'IDE ?

  3. #3
    Membre averti

    Homme Profil pro
    ingénieur, retraité
    Inscrit en
    Février 2007
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur, retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 230
    Points : 332
    Points
    332
    Par défaut
    Bonjour,

    Effectivement j'ai essayé d'obtenir la valeur de l'entier et IDE a refusé de compiler.
    Il s'agit bien d'une erreur dans l'aide.
    Merci pour les renseignements.
    PL

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

Discussions similaires

  1. [Delphi] - Aide processus
    Par overlock86 dans le forum Langage
    Réponses: 3
    Dernier message: 13/08/2012, 11h15
  2. [PRO Delphi] Aide pour l'utilisation du logiciel
    Par mick605 dans le forum Outils
    Réponses: 1
    Dernier message: 13/08/2009, 01h14
  3. [Rave][Delphi] pas d'aide en français
    Par Leesox dans le forum Rave
    Réponses: 3
    Dernier message: 29/03/2005, 14h05

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