Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Documents pareils
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Optimisation de 4D Server et 4D Web Server. Résumé. 4D Notes techniques

4e Dimension Clés XML Backup. Windows /Mac OS 4e Dimension D SA. Tous droits réservés.

Cours Informatique 1. Monsieur SADOUNI Salheddine

Structure du format BMP, sa lecture, sa construction et son écriture

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Représentation des Nombres

Single User. Guide d Installation

Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.

Programmation C. Apprendre à développer des programmes simples dans le langage C

E.N.T. Espace Numérique de Travail

Bases de programmation. Cours 5. Structurer les données

4D v11 SQL. Mise à jour Windows /Mac OS. 4D D SAS. Tous droits réservés.

Demande d'assistance : ecentral.graphics.kodak.com

Manuel d utilisation. Logiciel (Device Monitor) Pour les systèmes d imagerie numérique. Configuration requise Description générale

Logiciel (Système d impression directe)

Manuel d utilisation Logiciel (Communications Utility)

Rappels Entrées -Sorties

Architecture des ordinateurs Introduction à l informatique

UE Programmation Impérative Licence 2ème Année

Codage d information. Codage d information : -Définition-

LES SOLUTIONS DE CONNECTIVITÉ 4D

Demande d assistance : ecentral.graphics.kodak.com. Variable Data Print est désormais une option sous licence de InSite Storefront 6.0.

Comment générer un fichier PDF de qualité et certifié imprimable?

Comment obtenir des ebooks sur le Reader

Outils permettant la diffusion de l information. Un point sur le droit numérique

Mode d emploi pour lire des livres numériques

Exigences système Commercial & Digital Printing

DESKTOP Internal Drive. Guide d installation

La mémoire. Un ordinateur. L'octet. Le bit

Premiers pas avec VMware Fusion. VMware Fusion pour Mac OS X

Parallels Transporter Lisez-moi

Juin XMS PC Connect Guide de l utilisateur

CODAGE DES SMS. 2 Commandes «AT» 25 3 Matériels utilisés 55 4 Interfacer un téléphone GSM 73 5 Réalisations électroniques 101

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

4D Backup. Utilisation Windows /Mac OS. 4D Backup D SA. Tous droits réservés.

Mac OS X 10.6 Snow Leopard Guide d installation et de configuration

Manuel de I utilisateur. PrintShop Mail Version Logiciel de publipostage professionnel pour Apple Macintosh

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

datatale Boîtier Crypté 2.5-pouces pour disque dur Manuel d utilisation USB 2.0 AES 256 bit Rev.01

Manuel Utilisateur Version 1.6 Décembre 2001

Guide d installation pour PC. McAfee All Access

dans Apple Remote Desktop

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

McAfee Data Loss Prevention Endpoint 9.4.0

Conversion d un entier. Méthode par soustraction

Manuel logiciel client Java

Algorithme. Table des matières

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

A lire en premier lieu

1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6

Notions fondamentales du langage C# Version 1.0

V- Manipulations de nombres en binaire

E.N.T. Espace Numérique de Travail

Matériel & Logiciels (Hardware & Software)

TD : Codage des images

Le codage informatique

Appareil photo numérique reflex PC Connect

Direction des Systèmes d'information

Tester Windows 8 sans l'installer avec Virtualbox

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

AssetCenter Notes de version

Guide de l utilisateur

Samsung Data Migration v2.6 Guide d'introduction et d'installation

Guide d installation pour tablettes. McAfee All Access


Service d information pour remise de paiement de factures Scotia

TP 1. Prise en main du langage Python

Création de maquette web

Comment faire des étiquettes d adresse avec LIBREOFFICE, à partir d un fichier EXEL ou CALC

4D v12. Mise à jour Windows /Mac OS. 4D D SAS. Tous droits réservés.

UNION INTERNATIONALE DES TÉLÉCOMMUNICATIONS

Créer le schéma relationnel d une base de données ACCESS

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

Mise en route. QuickBooks. en ligne. Quelques conseils pour démarrer en beauté

Share Monitor Manuel de l utilisateur

Manuel d'utilisation de Mémo vocal

FAQ Mobiclic/ Toboclic

Initiation au binaire

Le langage C. Séance n 4

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Microsoft Office 365 Famille Premium

Annexe : La Programmation Informatique

4D v11 SQL Release 5 (11.5) ADDENDUM

PrintShop Mail Logiciel de mailing professionnel pour Macintosh et Windows

Gestionnaire de connexions Guide de l utilisateur

Transcription:

Organisation des variables 4D dans les Blob Par Thierry OZIL, Marketing Technique 4D S.A. Note technique 4D-200005-14-FR Version 1 Date 1 Mai 2000 Résumé Cette note technique décrit le codage des variables 4 D dans les blob, pour permettre une meilleure visibilité des structures et une manipulation des valeurs stockées. 4D Notes techniques Copyright 1985-2004 4D SA - Tous droits réservés Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible. Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers. Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support dulogiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés oureproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence. Aucune partie de ce document ne peut être reproduite ourecopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA. 4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA. Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation. Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc. Mac2Win Software Copyright 1990-2002 est un produit de Altura Software,Inc. 4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,trumbull,ct,usa. XTND Copyright 1992-2002 4D SA. Tous droits réservés. XTND Technology Copyright 1989-2002 Claris Corporation.. Tous droits réservés ACROBAT Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'adobe Systems Inc. Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs. 1 / 7

Introduction Cette note technique se propose d analyser la structure sous laquelle 4D stocke les variables dans les Blob. Récapitulatif sur le codage des données. Type Le Type de la variable est codé sur un octet tel que décrit dans le tableau suivant. Valeur TYPE 0 Est un champ alpha 24 Est une variable chaîne 2 Est un texte 1 Est un numérique 8 Est un entier 9 Est un entier long 4 Est une date 11 Est une heure 6 Est un booléen 3 Est une image 7 Est une sous-table 30 Est un BLOB 5 Est une variable indéfinie 23 Est un pointeur 21 Est un tableau chaîne 18 Est un tableau texte 14 Est un tableau numérique 15 Est un tableau entier 16 Est un tableau entier long 17 Est un tableau date 22 Est un tableau booléen 19 Est un tableau image 20 Est un tableau pointeur 13 Est un tableau 2D Ecriture des nombres Un nombre dans 4D peut être écrit en décimal ou en Hexadécimal, dans ce cas, il commence par 0x suivi du nombre Hexadécimal. Ainsi l instruction : $MaVar := 100 équivaut à l instruction : $Mavar := 0x0064 Ecriture des heures 2 / 7

Une heure est stockée sous la forme d un entier long indiquant le nombre de secondes écoulées depuis 00 ;00 ;00 Pour faire la conversion d une heure en entier long, il suffit d appliquer une opération algébrique. Exemple : C_Heure($vhHeure) $vhheure := 01 :02 :03 `Si l on veut connaître la valeur décimale $vlnbsecondes := $vhheure +0 ` vlnbsecondes = 3723 Byte Ordering L ordre des octets n est pas le même sous Windows et sous MacOS. L octet de poids fort est celui de gauche sur un Mac et celui de droite sur un PC Si on prend l exemple d un entier (codé sur 16 bits - 2 octets) dont la valeur =1 Il s écrira, sans surprise, sur un Mac : 0000 0000 0000 0001 et sur PC : 0001 0000 0000 0000. Prenons un autre exemple avec un entier long (codé sur 32bits - 4octets), dont la valeur décimale sera 1112299090 (cet exemple pour arbitraire qu il paraisse, n est pas dépourvu d intérêt comme on le verra un peu plus loin) Sur Mac OS, son codage en binaire sera : 01000010 01001100 01010110 01010010 Ce qui représente une suite de 4 octets qui de gauche à droite correspondent à la valeur décimale : 66, le caractère B de la table ASCII 76, le caractère L de la table ASCII 86, le caractère V de la table ASCII 82, le caractère R de la table ASCII Sur Windows, ce même entier long s écrira : 01010010 01010110 01001100 01000010 Ce qui représente une suite de 4 octets qui de gauche à droite correspondent à la valeur décimale : 82, le caractère R de la table ASCII 86, le caractère V de la table ASCII 76, le caractère L de la table ASCII 66, le caractère B de la table ASCII Dans ce document, tous les exemples utilisent des Blob avec le Byte Ordering du Macintosh Adressage des octets Pour un Blob dont la taille est n octets, les octets sont numérotés de 0 à n-1,. L offset du Blob qui correspond à l indice suivant le dernier octet aura la valeur n. L adressage adopte la même syntaxe que pour les tableaux, ainsi si l on veut lire le 5ème octet, on écrira : $vlmonoctet :=MonBlob{6} Chaîne en pascal 3 / 7

Dans 4D, les variables alpha sont codées en Chaîne Pascal à savoir : 1 octet pour le nombre de caractères, suivi d autant d octets qu il y a de caractères. Il n y a pas de marqueur de fin. Réels Les numériques sont stockés dans les champs et variables 4e Dimension en tant que nombres à virgule flottante. Sur les plates-formes Macintosh PPC et Windows, on travaille sur des mots de 64 bits (8 octets), tandis que sur les Macintosh 68K, le chiffre est stocké sur 80 bits (10 octets). 4D a toujours travaillé et enregistré ses réels sur 10 octets. Pour maintenir la compatibilité des bases avec les versions de 4D pour 68K, 4D continue d enregistrer les réels sur10 octets. Pour cela, 4D utilise des routines de conversion livrées par Apple, permettant de convertir des nombres à virgule flottante de 8 en 10 octets (et vice-versa). Le format 64-bits peut contenir 15 chiffres décimaux dont 52-bits significatifs et comme ils sont stockés dans le format 19 chiffres, les 4 derniers chiffres sont essentiellement aléatoires. Le format à virgule flottante est représenté comme suit : s = signe (+ ou -) (1 bit) e = exposant (1bit pour le signe +10 bits pour la valeur) m = la mantisse, ou partie significative (les chiffres significatifs qui construisent le nombre) (52 bits) Par exemple, -12 340 000 000 est un chiffre négatif. Si nous le décomposons, il s écrira comme suit : - Signe : - (négatif) - Exposant : +10 (10^10) - Significatif : 1,234 Padding Un processeur est plus efficace si les instructions d adressage du processeur se font sur des adresses paires (multiple de 4 pour Altivec), a cet effet une structure qui occupe un nombre d octets impairs, se voit ajouter après le dernier octet, un octet supplémentaire non significatif. Organisation des Blob Une variable 4D stockée dans un blob sera organisée de la façon suivante : 4 Octets pour Native Variable Vers Blob. - stockés sous la forme RVLB avec le format Macintosh - stockés sous la forme BLVR avec le format Windows. Indique qu il s agit d une variable 4D et sous quel Byte Ordering cette variable est stockée. 1 Octet pour indiquer le type de la variable en fonction du tableau ci-dessus : S il s agit d une variable du type : 4 / 7

Entier : Il n y a pas de variable de type entier dans 4D, La directive C_entier () existe bien, mais l entier ainsi déclaré sera codé sur 4 octets comme un entier long. Entier Long : 4 octets définissant la valeur de la variable Ex : Entier long = 255 Réel : 10 octets définissant la valeur de la variable. Ex : Réel = 100,25 Heure : 4 octets définissant le nombre de secondes Ex : Heure = 01 :02 ;03 ( 01 :02 ;03 =3723 secondes) Date : 3*2 octets définissant le jour, le mois, l année Ex : Date =!01/05/2000! Alpha : 2 octets pour la longueur de la chaîne tel que dans la déclaration de typage, suivi d une chaîne Pascal, c est-à-dire : 1 octet pour le nombre de caractère suivi d un octet pour chaque caractère de la chaîne Suivi, éventuellement, d un octet pour le padding Ex : Chaîne Alpha 20 = "4e Dimension" Chaîne Alpha 15 = "4eDimension" Texte : 2 octets pour la longueur de la chaîne Suivis d un octet pour chaque caractère de la chaîne Suivis éventuellement d un octet pour le padding 5 / 7

Ex : Texte = "4e Dimension" Image : 4 octets pour la taille Suivis des octets constituants l image Suivis, éventuellement, d un octet pour le padding Un tableau 4D stocké dans un blob sera organisé de la façon suivante : 4 Octets pour Native Variable Vers Blob. - stockés sous la forme RVLB avec le format Macintosh - stockés sous la forme BLVR avec le format Windows. 1 Octet pour indiquer le type de la variable, 4 octets définissant le nombre d éléments, 4 octets pour désigner l élément sélectionné. Suivi en fonction du type : Entier : (Il y a des tableaux de type entier dans 4D) n*(2 octets), où n représente le nombre d éléments Entier Long : Réel : Heure : Date : Alpha : Texte : Image : Remarques n*(4 octets), définissant la valeur de l entier long n*(10 octets) définissant la valeur de la variable n*(4 octets) définissant le nombre de secondes éventuellement n*(6 octets) définissant le jour, le mois, l année n*(2 octets +1 octet +1octet pour chaque caractère de la chaîne) Suivi éventuellement d un octet pour le padding n*(2 octets +1octet pour chaque caractère de la chaîne) Suivi éventuellement d un octet pour le padding n*(4 octets + les octets constituants l image) Suivi éventuellement d un octet pour le padding 6 / 7

Un Blob ne peut être affiché à l écran, mais tout ou partie des octets qui le composent peuvent être lus et convertis pour être affichés sous forme binaire, hexadécimale, décimale ou affichés avec les caractères ASCII correspondants. Vous pouvez à cette fin, utiliser l outil WoodBlob livré avec la NT N 4D-200002-06-FR On peut ajouter plusieurs variables dans un blob, En appelant plusieurs fois VARIABLE VERS BLOB(MaVar ;MonBlob ;$vloffset *) et en utilisant le même blob dans chacune des instructions, les variables seront stockées les unes à la suite des autres si le paramètre * est passé, ou seront stockéés à la valeur de $vloffset si ce paramètre est passé. Dans ce cas $vloffset (il faut que ce soit une variable et non une valeur passée en dur) prendra la valeur du prochain octet libre, c est-à-dire le premier octet de l objet rajouté. On doit mémoriser cette valeur si l on veut adresser directement un objet dans la liste des objets stockés dans le blob. 7 / 7