Partager via


Conteneurs : fichiers composés

Cet article explique les composants et l’implémentation des fichiers composés et les avantages et inconvénients de l’utilisation de fichiers composés dans vos applications OLE.

Les fichiers composés font partie intégrante d’OLE. Ils sont utilisés pour faciliter le transfert de données et le stockage de documents OLE. Les fichiers composés sont une implémentation du modèle de stockage structuré actif. Il existe des interfaces cohérentes qui prennent en charge la sérialisation vers un stockage, un flux ou un objet de fichier. Les fichiers composés sont pris en charge dans la bibliothèque de classes Microsoft Foundation par les classes COleStreamFile et COleDocument.

Remarque

L’utilisation d’un fichier composé n’implique pas que les informations proviennent d’un document OLE ou d’un document composé. Les fichiers composés ne sont qu’un des moyens de stocker des documents composés, des documents OLE et d’autres données.

Composants d’un fichier composé

L’implémentation OLE des fichiers composés utilise trois types d’objets : les objets de flux, les objets de stockage et ILockBytes les objets. Ces objets sont similaires aux composants d’un système de fichiers standard de la manière suivante :

  • Diffusez des objets, tels que des fichiers, stockez des données de n’importe quel type.

  • Les objets de stockage, tels que les répertoires, peuvent contenir d’autres objets de stockage et de flux.

  • LockBytes les objets représentent l’interface entre les objets de stockage et le matériel physique. Ils déterminent comment les octets réels sont écrits sur le périphérique de stockage auquel l’objet LockBytes accède, tel qu’un disque dur ou une zone de mémoire globale. Pour plus d’informations sur LockBytes les objets et l’interface ILockBytes , consultez la référence du programmeur OLE.

Avantages et inconvénients des fichiers composés

Les fichiers composés offrent des avantages non disponibles avec les méthodes antérieures de stockage de fichiers. Il s’agit notamment des éléments suivants :

  • Accès incrémentiel au fichier.

  • Modes d’accès aux fichiers.

  • Normalisation de la structure de fichiers.

Les inconvénients potentiels des fichiers composés ( problèmes de grande taille et de performances liés au stockage sur des disques de floppy) doivent être pris en compte lors du choix de leur utilisation dans votre application.

Accès incrémentiel aux fichiers

L’accès incrémentiel aux fichiers est un avantage automatique de l’utilisation de fichiers composés. Étant donné qu’un fichier composé peut être considéré comme un « système de fichiers au sein d’un fichier », des types d’objets individuels, tels que le flux ou le stockage, sont accessibles sans avoir à charger l’intégralité du fichier. Cela peut réduire considérablement le temps nécessaire à une application pour accéder aux nouveaux objets à modifier par l’utilisateur. La mise à jour incrémentielle, basée sur le même concept, offre des avantages similaires. Au lieu d’enregistrer l’intégralité du fichier uniquement pour enregistrer les modifications apportées à un seul objet, OLE enregistre uniquement le flux ou l’objet de stockage modifié par l’utilisateur.

Modes d’accès aux fichiers

La possibilité de déterminer quand les modifications apportées aux objets d’un fichier composé sont validées sur le disque est un autre avantage d’utiliser des fichiers composés. Le mode dans lequel les fichiers sont accessibles, traités ou directs, détermine quand les modifications sont validées.

  • Le mode Transactionné utilise une opération de validation en deux phases pour apporter des modifications aux objets d’un fichier composé, en conservant l’ancien et les nouvelles copies du document disponibles jusqu’à ce que l’utilisateur choisisse d’enregistrer ou d’annuler les modifications.

  • Le mode direct incorpore les modifications apportées au document, sans pouvoir les annuler ultérieurement.

Pour plus d’informations sur les modes d’accès, consultez la référence du programmeur OLE.

Standardisation

La structure standardisée des fichiers composés permet à différentes applications OLE de parcourir les fichiers composés créés par votre application OLE sans connaître l’application qui a réellement créé le fichier.

Considérations relatives à la taille et aux performances

En raison de la complexité de la structure de stockage de fichiers composée et de la possibilité d’enregistrer des données de manière incrémentielle, les fichiers utilisant ce format ont tendance à être plus volumineux que d’autres fichiers utilisant un stockage de fichiers non structurés ou « plats ». Si votre application charge et enregistre fréquemment des fichiers, l’utilisation de fichiers composés peut entraîner l’augmentation de la taille du fichier beaucoup plus rapidement que les fichiers non-conformes. Étant donné que les fichiers composés peuvent être volumineux, le temps d’accès des fichiers stockés sur et chargés à partir de disques de floppy peut également être affecté, ce qui entraîne un accès plus lent aux fichiers.

Un autre problème qui affecte les performances est la fragmentation de fichiers composés. La taille d’un fichier composé est déterminée par la différence entre les secteurs du premier et du dernier disque utilisés par le fichier. Un fichier fragmenté peut contenir de nombreuses zones d’espace libre qui ne contiennent pas de données, mais sont comptabilisées lors du calcul de la taille. Pendant la durée de vie d’un fichier composé, ces zones sont créées par l’insertion ou la suppression d’objets de stockage.

Utilisation du format de fichiers composés pour vos données

Après avoir créé une application dont la classe de document est COleDocumentdérivée, assurez-vous que votre constructeur de document principal appelle EnableCompoundFile. Lorsque l’Assistant Application crée des applications conteneur OLE, cet appel est inséré pour vous.

Dans la référence du programmeur OLE, consultez IStream, IStorage et ILockBytes.

Voir aussi

conteneurs
Conteneurs : problèmes de User-Interface
COleStreamFile, classe
COleDocument, classe