version 11 (Modifiée)
Tester conteneur (typeDonnées) Numérique
Paramètre | Type | Description | |
typeDonnées | Chaîne | Type de données | |
Résultat | Numérique | Taille (en octets) des données présentes dans le | |
conteneur ou code d'erreur |
Description
Tester conteneur vous permet de savoir s'il y a des données du type typeDonnées dans le conteneur de données.
Note : Dans le cadre d'une opération de copier/coller, le conteneur de données correspond au Presse-papiers.
Si le conteneur de données est vide ou ne contient pas de données du type spécifié, la fonction retourne une erreur -102. Si le conteneur contient des données du type spécifié, la fonction retourne la taille des données exprimée en octets.
Passez dans typeDonnées une valeur définissant le type de données à tester. Vous pouvez passer une signature 4D, un type UTI (Mac OS), un nom/numéro de format (Windows), ou un type de 4 caractères (compatibilité). Pour plus d'informations sur ces types, reportez-vous à la section Gestion du conteneur de données.
Après avoir vérifié que le conteneur contient bien des données du type que vous voulez, vous pouvez les récupérer à l'aide d'une des commandes suivantes :
Si le conteneur contient du texte, vous pouvez l'extraire à l'aide de la commande Lire texte dans conteneur, qui retourne une valeur texte. Sinon, vous pouvez utiliser la commande LIRE DONNEES CONTENEUR, qui retourne le texte dans un BLOB.
Si le conteneur contient une image, vous pouvez l'extraire à l'aide de la commande LIRE IMAGE DANS CONTENEUR, qui retourne l'image dans un champ ou une variable. Sinon, vous pouvez utiliser la commande LIRE DONNEES CONTENEUR, qui retourne l'image dans un BLOB.
Si le conteneur contient un chemin d'accès de fichier, vous pouvez l'extraire à l'aide de la commande Lire fichier dans conteneur, qui retourne le chemin d'accès du fichier.
Pour tout type de données, vous pouvez utiliser la commande LIRE DONNEES CONTENEUR, qui retourne les données dans un BLOB.
Exemples
(1) L'exemple suivant teste si le Presse-papiers contient une image jpeg et, si oui, la copie dans une variable 4D :
Si (Tester conteneur ("com.4d.private.picture.jfif") > 0) ` Y a-t-il une image jpeg dans le Presse-papiers ? LIRE IMAGE DANS CONTENEUR ($vPicVariable) ` Si oui, extraire l'image du Presse-papiers Sinon ALERTE("Il n'y a pas d'image dans le Presse-papiers.") Fin de si
(2) Généralement, après un couper ou un copier, les applications placent des données de type Texte ou Image dans le Presse-papiers, ces deux types de données standard sont reconnus par la plupart des applications. Cependant, une application peut placer dans le Presse-papiers plusieurs copies des mêmes données sous des formats différents. Par exemple, chaque fois que vous copiez ou coupez un tableau, l'application tableur peut placer les données dans un format propriétaire par exemple, 'SPSH' ou dans les formats SYLK et TEXT. La copie 'SPSH' contient les données structurées dans le format interne de l'application. La copie SYLK contient les mêmes données, mais dans le format SYLK, reconnu par la plupart des tableurs. Enfin, la copie TEXT contient les mêmes données, mais sans les informations de formatage supplémentaires présentes dans les formats SYLK ou 'SPSH'. Donc, lorsque vous écrivez des routines de Couper/Copier/Coller entre 4D et une application tableur, en prenant l'hypothèse que vous connaissez la description du format 'SPSH' et que vous pouvez analyser les données SYLK, vous pouvez écrire le code suivant :
Au cas ou ` D'abord, vérifier si le Presse-papiers contient les données venant du tableur : (Tester conteneur ('SPSH') > 0) ` ... ` Ensuite, vérifier si le Presse-papiers contient des données au format SYLK : (Tester conteneur('SYLK') > 0) ` ... ` Enfin, vérifier si le Presse-papiers contient des données au format TEXT : (Tester conteneur ('TEXT') > 0) ` ... Fin de cas
Autrement dit, vous essayez d'extraire du Presse-papiers la copie des données la plus riche en informations originales.
(3) Référez-vous à l'exemple de la commande AJOUTER DONNEES AU CONTENEUR.
Référence
LIRE DONNEES CONTENEUR, LIRE IMAGE DANS CONTENEUR, Lire texte dans conteneur.