5. Modèles
5.1 Création de modèles
Ce chapitre est en cours de réalisation (malheureusement déjà beaucoup trop long). À proprement parler, il ne s'agit que d'une description approximative et d'un ensemble d'informations qui me sont tombées dessus d'une manière ou d'une autre
Une liste complète de toutes les commandes se trouve dans le Annexe, dans le chapitre 6.5 Tableaux des commandes pour les modèles d'exportation..
Conventions pour la création de modèles dans les relations familiales
Les lignes commençant par [ ! sont des lignes de commentaire et ne sont pas éditées Les caractères [ et ] sont réservés au marquage des commandes. Si les caractères [ et ] doivent être édités sous forme de texte, un \ doit être placé devant (par exemple : \[ et \])
Structure de commandes:
Les commandes doivent être placées entre crochets. En règle générale, la commande se compose de la commande de base et d'un numéro d'index entre parenthèses. Les commandes qui font référence à des partenaires ou à des enfants sont également précédées du numéro de l'enfant.
Le numéro d'index entre parenthèses définit la personne à laquelle la commande de base doit s'appliquer. Par exemple, la commande [dénomination(23)] aura pour résultat que la dénomination de la personne sera le numéro d'index 23. Le numéro d'index entre parenthèses peut être spécifié directement (comme dans l'exemple précédent) ou encore être une commande. Donc [nom d'appel([inrvater(23)])] renvoie le nom d'appel du père de la personne dont le numéro d'index est 23.
Les commandes qui peuvent se référer à plusieurs entrées similaires (données relatives au mariage et à la séparation ainsi qu'aux enfants) sont en outre précédées du numéro du mariage/de la séparation ou de l'enfant souhaité. 2. lieu de mariage(23)] rendra donc le lieu de mariage du 2ème mariage de la personne ayant le numéro d'index 23 ou [4kind(23)] renvoie le numéro d'index du 4ème enfant de la personne avec le numéro d'index 23. Vous pouvez utiliser ce numéro d'index pour accéder aux données de l'enfant. Ainsi [prénoms([4kind(23)])] renvoie les prénoms de l'enfant mentionné. Les commandements ont donc une structure imbriquée ou hiérarchique.
Habituellement, vous souhaitez produire des personnes définies en utilisant les informations du dialogue et vous ne pouvez donc pas spécifier des numéros d'index fixes comme dans les exemples précédents. Au lieu d'un numéro d'index fixe, utilisez la spécification (x) pour que le programme insère le numéro d'index.
Exemple:
Dans le dialogue d'exportation, vous spécifiez que les personnes avec le Kekulé ; numéro 1-127 doivent être sorties. Le modèle ne contient que la commande [prénom(x)]. Familienbande affichera désormais tous les prénoms des personnes avec les numéros Kekulé- 1-127.
Sortie conditionnelle
Pour la sortie conditionnelle, les commandes [if], [else] et [end], ainsi que [exists(x)], [/exists(x)], [exported(x)] et [/exported(x)] sont disponibles. Le x doit être remplacé par une valeur ou une commande.
Il est également possible de comparer les conditions. Par exemple: [if][inrmutter([1inrkind(x)])]=[1inrpartner(x)] provoque la sortie des lignes suivantes uniquement si le numéro d'index du premier partenaire correspond au numéro d'index de la mère du premier enfant.
Boucles
Les boucles commencent par une ligne contenant la commande [loop], suivie du nombre de passages de la boucle. Le nombre peut être spécifié comme un nombre fixe ou codé sous forme de commande.
Exemples:
[loop]5 => ; la boucle est exécutée 5 fois [loop][nombre d'enfants] la boucle est exécutée en fonction du nombre d'enfants [loop][nombre de mariages] => ; la boucle est exécutée en fonction du nombre de mariages
La fin d'une boucle marque une ligne avec la commande [endloop]. Toutes les lignes intermédiaires sont des sorties. Toutes les commandes qui commencent par «[?» sont modifiées de telle sorte que le «?» est remplacé par une valeur numérique qui correspond au nombre de passes de boucle déjà effectuées.
Exemple:
Dans la première boucle, la passe [?inrkind] est remplacée par [1inrkind], dans la 3ème passe par [3inrkind].
Variables
Des variables peuvent être utilisées. Elles commencent toujours par [variable, suivie d'un nombre et de la parenthèse fermante
Exemple:
[variable1]
Il existe une possibilité d'affectation:
[variable1]=Tochter
[variable1]=[nachname]
On peut aussi calculer:
[variable1]=+1
L'exemple augmente la valeur de la variable de 1, toutes les valeurs d'addition sont autorisées.
Debugging
Les commandes [message] sont disponibles pour sortir la ligne restante dans une boîte de message et les commandes [traceon], [traceoff] pour éditer ligne par ligne.
CopyPicture(nr|target_name|target_width|target_height)] Copie le document avec le numéro «nr» vers «dossier pour images», donne au fichier copié le nom «target_name» et change la taille de l'image en «target_width» x «target_height». Les proportions sont conservées et, si nécessaire, «largeur cible» ou «hauteur cible» réduites en conséquence.
Attention!
Le format cible (si QuickTime est disponible) est le JPEG. Les spécifications «nom de la cible», «largeur de la cible» et «hauteur de la cible» sont facultatives. S'ils sont omis, le nom ou la taille d'origine est conservé.
Exemple:
[CopyPicture(1||100|100)] copie le premier document (en espérant que ce soit une image) dans le «dossier pour les images» ;. Le nom du fichier est conservé et l'image est redimensionnée à une taille maximale de 100x100 pixels.
CopyFile(name|target name)] Copie le document «nom» dans le «dossier pour les images» et donne au fichier copié le nom «nom»cible;. La spécification «nom cible» est facultative; si elle est omise, le nom original est conservé
Exemple:
[CopyFile(Format.css)]
Copie le fichier «Format.css» dans le «dossier pour les images», le nom du fichier est conservé. (Comparer les opérateurs <, =, >, /=, <=, > = describe)
|