Workflow Composer. Référence des scripts. Octobre 2003

Documents pareils
Workflow Composer. Référence des scripts. Mars

AccuRead OCR. Guide de l'administrateur

Options des imprimantes multifonction MX4500, X7500

TP 1. Prise en main du langage Python

Initiation à la programmation en Python

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

Algorithmique et Programmation, IMA

Utilisation d objets : String et ArrayList

Présentation du langage et premières fonctions

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

GLOSSAIRE DU SOUTIEN EN CAS DE RECOURS EN JUSTICE


INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII,

Comment utiliser FileMaker Pro avec Microsoft Office

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

STAGE IREM 0- Premiers pas en Python

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TP1. Outils Java Eléments de correction

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Guide d utilisation. Version 1.1

TD3: tableaux avancées, première classe et chaînes

Les chaînes de caractères

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Utilitaires méconnus de StrataFrame

Introduction au langage C

Notions fondamentales du langage C# Version 1.0

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Algorithmique et programmation : les bases (VBA) Corrigé

1. Structure d'un programme FORTRAN 95

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Initiation à la Programmation en Logique avec SISCtus Prolog

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Logiciel de capture et de gestion des flux de documents MOINS DE PAPIER, PLUS D EFFICACITÉ.

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

EBS 204 E C B S. Publication : Novembre 96

Cloud Portal for imagerunner ADVANCE

Présentation du PL/SQL

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Prise en main rapide

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

ACQUISITION. Traitement de l image. Classement. Préparation. Ouverture. Performance

HighPush. document /06/2009 Révision pour version /11/2008 Revision pour la /10/2008 Documentation initiale.

MODE OPERATOIRE OPENOFFICE BASE

Langage Java. Classe de première SI

Glossaire des nombres

Introduction à l algorithmique et à la programmation M1102 CM n 3

Mise à jour du logiciel de vidéo de Polycom

Une introduction à Java

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Publipostage avec Calc

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

ARCHIVES DEPARTEMENTALES DE L'EURE ALEXANDRIE

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Conventions d écriture et outils de mise au point

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

Atelier Formation Pages sur ipad Pages sur ipad

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

OCL - Object Constraint Language

Guide de démarrage rapide

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Manuel Utilisateur Version 1.6 Décembre 2001

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Plan du cours. Historique du langage Nouveautés de Java 7

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Java DataBaseConnectivity

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Guide d utilisation commandes des pièces de rechange Rev.1.0.3

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

Création et utilisation de formulaire pdf

< Atelier 1 /> Démarrer une application web

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

CA Desktop Migration Manager

Modules Multimédia PAO (Adobe)

TP1 : Initiation à Java et Eclipse

MEDIAplus elearning. version 6.6

Utilisation de l'outil «Open Office TEXTE»

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Cours Informatique Master STEP

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

Banque Nationale de Belgique Certificate Practice Statement For External Counterparties 1

Powershell. Sommaire. 1) Étude du cahier des charges 2) Veille technologique 3) Administration sur site 4) Automatisation des tâches d administration

COURS DE MS EXCEL 2010

Introduction à MATLAB R

L informatique en BCPST

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Introduction : présentation de la Business Intelligence

Transcription:

Workflow Composer Référence des scripts Pour afficher ou télécharger cette publication ou d'autres publications Lexmark Document Solutions, cliquez ici. Octobre 2003 www.lexmark.com

Edition : Octobre 2003 Le paragraphe suivant ne s'applique pas aux pays dans lesquels lesdites clauses ne sont pas conformes à la législation en vigueur : LEXMARK INTERNATIONAL, INC., FOURNIT CETTE PUBLICATION «TELLE QUELLE» SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE, Y COMPRIS MAIS SANS SE LIMITER AUX GARANTIES IMPLICITES DE QUALITE MARCHANDE OU D'ADEQUATION A UN USAGE SPECIFIQUE. Certains pays ou Etats n'admettent pas la renonciation aux garanties explicites ou implicites pour certaines transactions ; il se peut donc que cette déclaration ne vous concerne pas. Cette publication peut contenir des imprécisions techniques ou des erreurs typographiques. Des modifications sont périodiquement apportées aux informations qu'elle renferme ; ces modifications seront intégrées dans les éditions ultérieures de la publication. Des améliorations ou modifications des produits ou programmes décrits dans cette publication peuvent intervenir à tout moment. Adressez vos commentaires directement à Lexmark International, Inc., Department F95/032-2, 740 West New Circle Road, Lexington, Kentucky 40550, Etats-Unis. Au Royaume-Uni et en République d'irlande, veuillez nous contacter à l adresse suivante : Lexmark International Ltd., Marketing and Services Department, Westhorpe House, Westhorpe, Marlow Bucks SL7 3RQ. Lexmark peut utiliser ou distribuer les informations que vous fournissez, de la manière qui lui semble appropriée, sans encourir aucune obligation à votre égard. Vous pouvez vous procurer des exemplaires supplémentaires des publications relatives à ce produit en appelant le 1-800-553-9727. Au Royaume-Uni et en République d'irlande, appelez le +44 (0)8704 440 044. Dans les autres pays, veuillez contacter votre revendeur. Les références faites dans cette publication à des produits, programmes ou services n'impliquent pas l'intention du fabricant de les commercialiser dans tous les pays dans lesquels il est implanté. Toute référence à un produit, programme ou service n'implique pas que seul ce produit, programme ou service peut être utilisé. Tout produit, programme ou service équivalent au niveau fonctionnel ne violant aucun droit de propriété intellectuelle existant peut être utilisé en remplacement. L'évaluation et la vérification du fonctionnement en association avec d'autres produits, programmes ou services, à l'exception de ceux expressément désignés par le fabricant, incombent à l'utilisateur. ImageQuick, Optra, Lexmark et Lexmark avec le logo du diamant sont des marques de Lexmark International, Inc., déposées aux Etats-Unis et/ou dans d'autres pays. PostScript est une marque déposée d Adobe Systems Incorporated. Les autres marques sont la propriété de leurs détenteurs respectifs. Copyright 2003 Lexmark International, Inc. Tous droits réservés. DROITS DU GOUVERNEMENT AMERICAIN Ce logiciel et la documentation qui l'accompagne, fournis dans le cadre de cet accord, sont des logiciels commerciaux et de la documentation développés exclusivement à partir de fonds privés.

Table des matières Chapitre 1: Introduction... 1 Compatibilité... 2 Nouveautés de la version 3.2... 2 Chapitre 2: Notions de base... 3 Objets... 3 Déclaration de variables... 4 Contrôle du flux... 4 If/Then/Else... 4 Switch/Case... 5 Instructions répétitives... 6 Loop... 6 Repeat... 7 Opérateurs... 10 Mathématiques... 10 Comparaison... 11 Booléens... 12 Autres fonctionnalités... 13 Abréviation d'un objet à l aide de «with»... 13 Débogage d un script... 13 Concaténation des commentaires et des lignes de code dans un script... 14 Abandon d un script en cours d exécution... 14 Chapitre 3: Objets type de données... 15 Booléens... 16 Opérateurs... 16 Document... 17 Méthodes... 17 Opérateurs... 21 Entier... 22 Méthodes... 22 Opérateurs... 23 iii

Réel... 25 Méthodes... 25 Opérateurs... 26 Chaîne... 27 Méthodes... 27 Opérateurs... 32 Table... 35 Méthodes... 35 Chapitre 4: Objets d aide... 38 Tableau de booléens... 39 Méthodes... 39 Dataset... 40 Méthodes... 40 Tableau d entiers... 42 Méthodes... 42 Options d'impression... 43 Méthodes... 43 Options... 44 Tableau de réels... 48 Méthodes... 48 Tableau de s... 49 Méthodes... 49 Fichier texte... 51 Méthodes... 51 ImageInfo... 56 Fichiers PDF... 58 Numéros de page... 58 Types d'image... 58 Nombres de couleurs de l'image... 59 Chapitre 5: Objets système... 60 Original... 61 Usertime... 62 Confirmation... 65 Exemple de remplacement :... 68 Local... 69 Table des matières iv

Chapitre 6:... 70 BarcodeRead (Codes à barres : Lire)... 71 BarcodeWrite (Codes à barres : Ecrire)... 77 ConvertImageFormat (Images : Modifier Format)... 83 ConvertToDocument (Images : Convertir en Postscript ou Image PDF)... 88 DatabaseNotes (Groupware : Réceptionner)... 90 Actions Domino.Doc... 93 DominoDocCheckIn (EDMS : Réceptionner)... 94 DominoDocCheckIn (EDMS : Récupérer)... 99 Connexion à Domino.Doc... 104 Navigation dans une bibliothèque Domino.Doc... 104 EmailExchange (Email)... 106 EmailNotes (Email)... 109 EmailSMTP (Email)... 112 Adresses de messagerie électronique... 114 Destinataires et expéditeurs... 114 Authentification... 115 FaxByPrinter (Fax)... 116 FTPget (FTP : Obtenir)... 118 FTPput (FTP : Placer)... 120 Actions GroupWise... 122 GWMail (Email)... 123 GWDiscuss (Email)... 128 GWCheckIn (Groupware : Réceptionner)... 131 ImageCombine (Images : Combiner dans Document)... 134 ImageCrop (Images : Découper)... 136 ImageInvert (Images : Inverser)... 139 ImageMerge (Images : Superposer)... 140 ImageRotate (Images : Pivoter)... 145 ImageSeparate (Images : Séparer dans document)... 147 ImageText (Images : Superposer Texte)... 148 ImageToHTML (Images : Convertir en HTML)... 152 Types de texte... 155 ImageToPDF (Images : Convertir en PDF [Consultable])... 156 Types de texte... 160 ImageToRTF (Images : Convertir en RTF)... 161 Types de texte... 164 Table des matières v

ImageToText (Images : Convertir en Texte)... 165 Types de texte... 169 LaunchExe (Lancer un autre programme)... 170 Vérification des valeurs de renvoi... 173 MergeForm (Formulaires : Fusionner en PDF)... 174 Actions ODBC... 175 Introduction... 175 ODBCWrite (Base de données ODBC : Ecrire)... 176 ODBCRead (Base de données ODBC : Lire)... 181 PrintByDriver (Imprimer)... 187 PrintForm (Imprimer)... 190 Type d'imprimante... 192 Utilisation d une file d attente Windows... 192 PrintJob (Imprimer)... 195 Confirmation d impression... 202 PrintURL (Imprimer)... 203 SaveToFile (Enregistrer dans fichier)... 204 SharePoint... 208 SharePointWrite (EDMS : Réceptionner)... 209 SharePointRead (EDMS : Récupérer)... 213 TiffSplit... 220 Méthodes... 220 Chapitre 7: Invites... 222 Invite de type activation... 223 Invite de message... 224 Invite de type numérique... 225 Invite de type options (sélection multiple)... 227 Invite de type options (sélection unique)... 230 Invite de mot de passe... 231 Invite de type texte... 232 Annexe A: Référence ODBC...234 Logiciels et configuration requis... 234 Prise en charge des documents de la base de données... 235 Insertion de valeurs dans des colonnes de date... 236 Table des matières vi

Annexe B: Référence des codes à barres...237 Codabar... 237 Code 2 of 5... 238 Code 3 of 9... 239 Code 32... 239 Code 93... 240 Code 128... 240 EAN-8... 240 EAN-13... 242 ITF... 242 Patch... 243 PDF-417... 243 PostNet / Planet... 244 UCC 128... 244 UPC-A... 245 UPC-E... 246 Annexe C: Référence des métadonnées...247 Options de numérisation... 247 Options de copie... 250 Options de fax... 253 Options de messagerie électronique/ftp... 254 Accès aux données de remplacement dans un script... 255 Table des matières vii

1 Introduction Ce manuel fournit une référence technique pour LDDScript 3.2, le langage de création de script de la suite de produits Lexmark Document Solutions. Le manuel Référence des scripts est organisé de la manière suivante : Chapitre 1, «Notions de base» Présentation succincte des constructions de base de LDDScript. Chapitre 2, «Objets type de données» Informations relatives aux types de données pris en charge. Chapitre 3, «Objets d aide» Informations relatives aux objets utilisés pour exécuter des opérations courantes. Chapitre 4, «Objets système» Informations relatives aux objets qui fournissent les données associées au travail présenté ainsi que les réponses à l utilisateur. Chapitre 5, Informations relatives aux objets qui traitent effectivement les documents à acheminer, à stocker dans une base de données, à imprimer, etc. Chapitre 6, «Invites» Informations relatives à la syntaxe et aux objets qui invitent l utilisateur à fournir des données. Annexe A, «Référence ODBC» Informations relatives à la mise en interface avec des bases de données à partir d un script. Annexe B, «Références des codes à barres» Informations relatives aux codes à barres pris en charge par LDDScript. Annexe C, «Référence des métadonnées» Informations relatives aux propriétés des métadonnées qui sont renvoyées lorsqu un script remplace une opération normale de copie/fax/ message électronique d un MFP. Introduction 1

Compatibilité LDDScript 3.2 continue d utiliser la syntaxe et les constructions introduites dans Lexmark Document Distributor 2.0. La suite qui exploite le langage de script comprend : Lexmark Document Distributor Lexmark Document Producer Lexmark Document Portal Le langage de script est compatible avec tous ces produits et vous permet d automatiser votre flux de travail, de créer des formulaires basés sur le serveur et d imprimer des formulaires vierges ou précomplétés. Ces produits peuvent fonctionner de manière autonome ou être intégrés pour constituer une solution de document complète. Les scripts écrits pour LDD 2.x doivent être convertis ou réécris pour fonctionner avec LDD 3.x. Les scripts écrits à l aide de Workflow Composer 3.1 peuvent être utilisés avec LDD 3.2 sans modification ; à l exception des scripts qui utilisaient l action ImageDeskew qui a été supprimée de LDD 3.2. Nouveautés de la version 3.2 Les modifications suivantes ont été apportées dans la version 3.2 : La page de confirmation a été améliorée pour permettre l inclusion des représentations miniatures de toutes les pages numérisées. Par ailleurs, les questions et réponses saisies par l utilisateur au niveau du MFP peuvent aussi être incluses sur la page de confirmation. Le remplacement de l action de la page de confirmation par défaut est désormais possible, et la page de confirmation peut être envoyée par courrier électronique ou enregistrée dans un fichier, par exemple. L authentification a été ajoutée à l action EmailSMTP. L action ImageDeskew a été supprimée. Les performances de l action MergeForm ont été sensiblement augmentées. La prise en charge des files d attente Windows a été ajoutée à l action PrintForm. Introduction 2

2 Notions de base Objets Un objet est un bloc de construction élémentaire de LDDScript qui contient des propriétés et des méthodes. Une propriété est un des objets type de données de base tel qu une ou un entier. Différentes valeurs peuvent lui être affectées pour influencer le fonctionnement d un objet. Une méthode est une fonction destinée à agir sur les données. Une méthode peut avoir des paramètres et peut retourner une valeur. Les paramètres et les valeurs de retour sont des objets type de données ou des objets d aide. La notation à point est utilisée pour accéder aux propriétés et aux méthodes d un objet. Pour définir la valeur d une propriété : ObjectName.propertyName = valeur Pour appeler une méthode : ObjectName.MethodName() ObjectName.MethodName(param1, param2) returnvalue = ObjectName.MethodName(param1) LDDScript prend en charge cinq types d objet : Type de données : Objets les plus élémentaires ; toutes les propriétés et la plupart des variables sont de ce type. Aide :Permet d exécuter aisément certaines opérations courantes. Système : Ne traite pas les documents ; cet objet sert à rassembler les entrées et fournit la réaction de l utilisateur. Action :Traite les documents ; exécute l archivage, l acheminement, la distribution, etc. Les autres chapitres de ce manuel traitent individuellement de chaque type d'objet. Notions de base 3

Déclaration de variables Toutes les variables doivent être déclarées avant de pouvoir être utilisées. Il est toutefois impossible de déclarer des variables dans un bloc «with» ainsi que dans des blocs logiques tels que if/then ou loop. Vous déclarez une variable en spécifiant son type d objet et son nom. Par exemple : string text int num Pour affecter un nom à vos variables, vous devez respecter certaines règles : Le nom doit être constitué de lettres, chiffres et traits de soulignement. Le premier caractère du nom doit être une lettre. Ce nom doit être unique au sein du script. Les noms ne différencient pas les majuscules des minuscules, ce qui signifie que «Nom», «NOM» et «nom» sont considérés comme un même nom de variable. Le nom ne peut pas être un mot réservé (c est-à-dire un mot qui possède une signification particulière pour le compilateur de scripts). Contrôle du flux Pour contrôler l exécution des instructions du script, une certaine logique de contrôle de flux est nécessaire. Les instructions du script peuvent être exécutées de trois façons : successivement, sélectivement ou répétitivement. Lorsqu aucune logique de contrôle du flux n est utilisée, les instructions sont exécutées dans l ordre du script. Pour exécuter certaines instructions du script de manière sélective, vous pouvez utiliser des instructions if/then/else ou switch/case. Pour répéter l exécution des instructions de script, utilisez les instructions loop et repeat. If/Then/Else Le type de contrôle de flux le plus courant est celui qui exécute une instruction quand une condition déterminée est vraie. Cette aptitude est mise en oeuvre sur le serveur Document Server à l aide de la structure if/then/else. Le format de base est le suivant : if (bool expression) then statement1 statementn endif Notions de base 4

Les instructions statement1 à statementn ne sont exécutées que si l expression booléenne entre parenthèses a la valeur TRUE. Dans certains cas, il faut aussi évaluer un ensemble d instructions si une condition a la valeur TRUE et un autre si la valeur est FALSE. La structure else est prévue pour une telle utilisation : if (bool expression) then statementa statementc else statementx statementz endif Les instructions statementa à statementc sont exécutées si l expression booléenne entre parenthèses a la valeur TRUE ; sinon, les instructions statementx à statementz sont exécutées. Switch/Case Il arrive parfois que vous souhaitez vérifier plusieurs conditions. Pour ce faire, vous devez utiliser plusieurs instructions If/Then. L instruction Switch/Case permet d'éviter le problème et de réaliser facilement plusieurs comparaisons : Integer switch String switch switch (intvar) switch (stringvar) case intval1 case "stringval1" statementa statementa statementb statementb case intval2 case "stringval2" statementc statementc statementd statementd default default statemente statemente statementf statementf endswitch endswitch L instruction Switch/Case accepte des valeurs d entier ou de. Selon la valeur de la variable, le bloc case correspondant à cette valeur est exécuté. Chaque bloc case peut contenir plusieurs instructions, mais un bloc case seulement est exécuté. Si la valeur de la variable switch ne correspond à aucun bloc case, le bloc default est exécuté. Le bloc default n est pas requis. Néanmoins, s il est utilisé, il doit être placé en dernier. Exemple d instruction Switch Les imprimantes multifonctions (MFP) possèdent une fonction de comptabilisation des travaux. Quand cette fonction est activée, les utilisateurs doivent spécifier un numéro de compte pour pouvoir accéder à un profil. Dans cet exemple, les utilisateurs spécifient un numéro de département pour utiliser des profils. Ce script d exemple exécute une instruction Switch/Case pour vérifier le numéro de département. Notions de base 5

string CustomSubject // Utilise le numéro de compte sous forme d'entier int DeptNumber = original.useracct.asint() switch (DeptNumber) case 35 CustomSubject = "Document des Ressources Humaines" case 41 CustomSubject = "Document du Département Juridique" case 15 CustomSubject = "Document du Département Expédition" par défaut CustomSubject = "Document de votre société" endswitch with EmailSMTP.Server="mailserver.com".To="barbarab@foobar.com".From="LDDTrain@lexmark.com".Subject=CustomSubject.Message="Veuillez lire SVP.".CharacterSet=LDD_SMTPCHARSET_US.Attachments=original.document.Go() endwith Instructions répétitives Chaque instruction d un script n est exécutée qu une seule fois. Les instructions repeat et loop vous permettent toutefois d exécuter à plusieurs reprises le même bloc d instructions. Loop Pour répéter un jeu d instructions à une fréquence déterminée, utilisez l instruction loop. Syntaxe : loop (intcounter from istart to ifinish) statement1 statementn endloop où : intcounter est une variable d entier déclarée précédemment ; istart est une valeur d entier à affecter à intcounter au démarrage de l instruction loop ; ifinish est une valeur d entier définie comme valeur maximum pour intcounter. En utilisant une variable d entier comme compteur, l instruction loop est répétée à la fréquence spécifiée dans l information istart/ifinish. Vous pouvez inclure dans le bloc loop autant d instructions que vous le souhaitez. Le bloc loop se termine avec l instruction endloop. Notions de base 6

L instruction loop commence avec la variable du compteur à laquelle est affectée la valeur indiquée par istart. A chaque exécution de loop, la valeur du compteur augmente d une unité (1). Les répétitions se poursuivent jusqu à ce que la valeur du compteur soit supérieure à celle de ifinish. Ainsi, une instruction loop de 1 à 10 est répétée jusqu à ce que le compteur prenne la valeur 11. La valeur de istart doit être inférieure à celle de ifinish. La variable d entier affectée au compteur doit être déclarée avant de pouvoir être utilisée dans l instruction loop. Exemple : Envoi par courrier électronique d'un document numérisé à dix représentants du service clientèle. Dans ce script, les propriétés EmailSMTP communes sont définies avant d envoyer les messages électroniques dans l instruction Loop. string EmailAdd int LoopCount // Configure les propriétés communes des messages électroniques with EmailSMTP.Subject="Réclamation client".server="mail.server.com".from="customer_service@foobar.com".message="veuillez examiner cette réclamation".attachments=original.document.characterset=ldd_smtpcharset_us endwith loop (LoopCount from 1 to 10) EmailSMTP.To="CustRep" + LoopCount.AsString() + "@foobar.com" EmailSMTP.Go() endloop Repeat L instruction repeat permet d exécuter indéfiniment un bloc d instructions, jusqu à ce qu une expression prenne la valeur True. repeat (until bool expression) statement1 statementn endrepeat L instruction repeat exécute le bloc d instructions jusqu à ce que l expression booléenne prenne la valeur TRUE. Vous pouvez inclure dans le bloc loop autant d instructions que vous le souhaitez. Le bloc loop doit se terminer par l instruction endrepeat. Si la valeur initiale de l expression booléenne est true, l'instruction loop n est pas exécutée. Notions de base 7

Exemple : Ce script utilise la reconnaissance optique des caractères (OCR) pour vérifier la confidentialité des documents numérisés par les utilisateurs. Si le document est confidentiel, il n est pas envoyé par courrier électronique. L image numérisée est enregistrée dans un fichier et un message d avertissement est transmis à l utilisateur qui a numérisé le document confidentiel. with ImageToText.input=original.document.TextType=LDD_TEXTTYPE_NORMAL.Language=LDD_LANG_ENGLISH.AllPages=TRUE.Go() endwith textfile tf string OneLine, Submitter // Ouvre les résultats de l action OCR tf.open(imagetotext.output) bool bconfdoc = FALSE int icount, iend icount =1 iend = tf.getnumberlines() Submitter = original.username+ "@lexmark.com" // Recherche le mot Confidentiel dans chaque ligne repeat (until (bconfdoc OR (icount>=iend))) OneLine = tf.readline() if (OneLine.Contains("Confidentiel")) then bconfdoc = TRUE endif icount.add(1) endrepeat // Enregistre le document s il est confidentiel et envoie un message d avertissement if (bconfdoc) then with SaveToFile.input=original.document.Path="c:\ebc.txt".AppendTimestamp=TRUE.Overwrite=FALSE.Go() endwith with EmailSMTP.Server="mail.server.com".To= Submitter Notions de base 8

.From="mailcheck@abcxyz.com".Subject="Message électronique non valide rejeté".message="un document confidentiel ne peut pas être transmis par courrier électronique.".characterset=ldd_smtpcharset_us.go() endwith else with EmailSMTP.Server="mail.server.com".To="Receiver@abcxyz.com".From=Submitter.Subject="Document numérisé".message="vous trouverez ci-après le document demandé.".characterset=ldd_smtpcharset_us.attachments=original.document.go() endwith endif Notions de base 9

Opérateurs Mathématiques Ces opérateurs permettent de définir ou de modifier la valeur d une variable ou d une propriété. Opérateur Symbole Description Addition + Pour les objets entier et réel, cet opérateur additionne les nombres de part et d autre du signe «+» et renvoie la nouvelle valeur. Pour les objets, l effet produit par cet opérateur est similaire à celui de la méthode de concaténation. Il ajoute la de droite à celle de gauche et renvoie la nouvelle. Pour les objets document, il ajoute le document de droite à celui de gauche et renvoie le nouveau document. Dans tous les cas, les variables de part et d autre demeurent inchangées. Soustraction - Pour les objets entier et réel, cet opérateur soustrait le nombre de droite de celui de gauche et renvoie la nouvelle valeur. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. Multiplication * Pour les objets entier et réel, cet opérateur multiplie les nombres de part et d autre du signe «*» et renvoie la nouvelle valeur. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. Division / Pour les objets entier et réel, cet opérateur divise le nombre de gauche par celui de droite et renvoie la nouvelle valeur. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. Modulo % Pour les objets entier et réel, cet opérateur divise le nombre de gauche par celui de droite et renvoie le reste. Dans tous les cas, les variables de part et d autre demeurent inchangées. Cet opérateur n est pas valide avec les autres types d objet. 5%2, par exemple, renvoie 1, puisque 5 divisé par 2 donne 2 avec un reste de 1. Notions de base 10

Comparaison Ces opérateurs permettent de comparer les valeurs de variables ou de propriétés de même type. Le résultat de la comparaison est une valeur booléenne (TRUE ou FALSE). Tous les symboles disponibles avec un opérateur peuvent être utilisés. Opérateur Symboles Description Inférieur à <, LT (Less than) Pour les entiers et les réels, renvoie TRUE si la valeur de gauche est inférieure à celle de droite. Pour les s, renvoie TRUE si la valeur de gauche vient avant celle de droite dans l ordre alphabétique (casse incluse). Sinon, l opérateur renvoie la valeur FALSE. Supérieur à >, GT (Greater than) Pour les entiers et les réels, renvoie TRUE si la valeur de gauche est supérieure à celle de droite. Pour les s, renvoie TRUE si la valeur de gauche vient après celle de droite dans l ordre alphabétique (casse incluse). Sinon, l opérateur renvoie la valeur FALSE. Inférieur ou égal à <=, LE (Less than or Equal to) Pour les entiers et les réels, renvoie TRUE si la valeur de gauche est inférieure ou égale à celle de droite. Pour les s, renvoie TRUE si la valeur de gauche vient avant celle de droite dans l ordre alphabétique ou si les deux valeurs sont identiques (casse incluse). Sinon, l opérateur renvoie la valeur FALSE. Supérieur ou égal à Egal à >=, GE (Greater Than or Equal To) ==, EQ (Equal To) (double signe égal) Pour les entiers et les réels, renvoie TRUE si la valeur de gauche est supérieure ou égale à celle de droite. Pour les s, renvoie TRUE si la valeur de gauche vient après celle de droite dans l ordre alphabétique ou si les deux valeurs sont identiques (casse incluse). Sinon, l opérateur renvoie la valeur FALSE. Pour les entiers et les réels, renvoie TRUE si la valeur de gauche est égale à celle de droite. Pour les s, renvoie TRUE si la valeur de gauche est identique en tout point (casse incluse) à celle de droite. Sinon, l opérateur renvoie la valeur FALSE. Différent de!=, <>, NE (Not Equal To) Pour les entiers et les réels, renvoie TRUE si la valeur de gauche est différente de celle de droite. Pour les s, renvoie TRUE si la valeur de gauche n est pas identique en tout point (casse incluse) à celle de droite. Sinon, l opérateur renvoie la valeur FALSE. Notions de base 11

Booléens Ces opérateurs permettent de construire des expressions booléennes complexes. Chaque valeur de part et d autre de l opérateur doit être une valeur booléenne. Le résultat de l opérateur booléen est une valeur booléenne (TRUE ou FALSE). Tous les symboles disponibles avec un opérateur peuvent être utilisés. Opérateur Symboles Description And &, &&, AND Applique AND à deux valeurs booléennes pour obtenir le résultat booléen final. Or,, OR Applique OR à deux valeurs booléennes pour obtenir le résultat booléen final. Not!, NOT Applique NOT à deux valeurs booléennes pour obtenir le résultat booléen final. Le tableau ci-dessous donne les résultats des méthodes AND et OR avec : bool1 AND bool2 bool1 OR bool2 bool 1 bool2 AND OR FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE Le tableau ci-dessous donne les résultats des méthodes NOT avec : NOT bool1 bool 1 TRUE FALSE NOT FALSE TRUE Notions de base 12

Autres fonctionnalités Abréviation d'un objet à l aide de «with» Quand une section de code fonctionne avec le même objet, il peut s avérer fastidieux de taper continuellement le même nom d objet. Vous pouvez l éviter en utilisant l instruction with. Son format général est le suivant : with objectname.property = value.property = value.method() endwith Vous déclarez d abord le nom de l objet à utiliser dans l instruction with, puis vous pouvez faire référence à n importe quelle propriété ou méthode de cet objet en spécifiant le «point» suivi du nom de la propriété ou de la méthode. Cette procédure est la procédure la plus fréquemment utilisée avec les objets action. Débogage d un script Pendant l exécution d un script, les objets action peuvent consigner des messages d erreur et d avertissement dans le journal. Vous pouvez aussi écrire vos propres messages dans ce journal pour faciliter le débogage de votre script. Vous souhaiterez peut-être connaître la valeur d une variable ou la valeur de renvoi d une méthode, par exemple. A cette fin, consignez votre message dans le journal à l aide de l instruction «debug». debug (msg) msg peut être une variable de, une entre guillemets ou une expression numérique. Voici quelques exemples : int index= 3 string ErrorMsg = "Echec de l impression" debug (index) debug (ErrorMsg) debug ("Travail reçu de" + original.username) Chacun de ces exemples consigne un message dans le journal du serveur. Notions de base 13

Concaténation des commentaires et des lignes de code dans un script Pour concaténer des commentaires dans un script, vous devez utiliser deux barres obliques («//») si le texte est renvoyé à la ligne. Par exemple : //Ce script faxe un original numérisé et l envoie à une base de données fournie par l utilisateur, //si la base de données n'est pas prise en charge par le logiciel... Pour concaténer des lignes de code, vous devez utiliser un trait de soulignement («_»). Par exemple : str email="jean Dupont" doc ocr with EmailSMTP.Server=local.emailserver.To=email.From=email.Subject="Votre document numérisé".message="vous trouverez ci-joint votre document numérisé au format"_ "demandé.".characterset=ldd_smtpcharset_us.attachments=ocr.go() endwith Abandon d un script en cours d exécution Si vous détectez une condition d erreur pendant l exécution d un script, il peut s avérer utile de disposer d un moyen pour arrêter le traitement du script. Ce moyen, c est la fonction exit : void exit(string msg) La fonction exit arrête le traitement du script. Elle vous permet de passer une qui apparaît dans le journal du serveur ainsi que dans la page/boîte de dialogue de confirmation. Notions de base 14

3 Objets type de données Toutes les données exploitées par Workflow Composer peuvent être groupées en six types distincts : Booléens Document Entier Table Réel Chaîne Chaque propriété d objet correspond à un des objets type de données. En outre, la plupart des variables correspondent aussi à un de ces types. Vous trouverez ci-dessous une description de chacun de ces objets. Objets type de données 15

Booléens L objet booléen est utilisé avec des valeurs logiquement vraies ou fausses. Les seules valeurs valides de cette variable sont les mots réservés : TRUE et FALSE. L objet ne possède pas de propriété. Il prend en charge les opérateurs suivants : Opérateurs Symbole Description ==, EQ Egal à <> Différent de &, AND Et, OR Ou!, NOT Non = Affectation Objets type de données 16

Document L objet document sert à contenir une collection de fichiers image, texte et autres mises en forme. Les fichiers d un document ne doivent pas nécessairement être tous du même type ; il peut contenir plusieurs fichiers de types différents. Une propriété ou une variable est de ce type lorsqu elle est déclarée comme doc. L objet document ne possède pas de propriété. Méthodes Syntaxe bool AddDocument(doc doc1) bool AddFile(string path [, string type]) void AddTempFile(string ext) void Clear() Description Ajoute un document existant à la fin de ce document. doc1 : document à ajouter. Une valeur booléenne indiquant le succès ou l échec. Ajoute un fichier existant à la fin de ce document. Cette méthode échoue si le fichier n existe pas ou s il ne peut pas être lu. path : chemin d accès complet du fichier sur le serveur à ajouter. type : s il n est pas spécifié, il est défini à l extension du fichier ajouté ; sinon, la valeur fournie est utilisée. Une valeur booléenne indiquant le succès ou l échec. Ajoute un fichier temporaire au document. Le fichier est supprimé quand le script se termine. ext : extension du fichier temporaire. Supprime tous les fichiers du document. Objets type de données 17

Syntaxe doc Copy() doc CopyRange(int start, int end) int GetDocumentSize() string GetDocumentType() Description Copie tous les fichiers de ce document dans un nouveau document ; en réalité, cette syntaxe crée une copie des fichiers, de sorte qu il existe deux copies des fichiers. Cela permet d apporter des modifications à un jeu de fichiers sans affecter l autre. Un document contenant une copie de tous les fichiers de la variable de document qui est copiée. Copie les fichiers spécifiés de ce document dans un nouveau document ; en réalité, cette syntaxe crée une copie des fichiers, de sorte qu il existe deux copies des fichiers. Cela permet d apporter des modifications à un jeu de fichiers sans affecter l autre. start : index du premier fichier du document à copier ; les index de fichier commencent à 1. end : index du dernier fichier du document à copier. Retour : Un document contenant une copie des fichiers inclus dans la plage spécifiée. Renvoie la taille totale en octets de tous les fichiers de ce document. La taille zéro (0) est retournée si le document ne contient aucun fichier. Un entier spécifiant le nombre total d octets dans ce document. Renvoie le type (format de fichier ou extension) du document. Si tous les fichiers du document sont du même type, la valeur correspond au type du document ; sinon, c est une vide. Une contenant le type (format de fichier ou extension) du document. Objets type de données 18

Syntaxe doc GetFile(int filenum) string GetFileLabel(int filenum) Renvoie une référence au fichier spécifié ; le document renvoyé n étant pas une copie, toute modification qui lui est apportée affecte l original. Un document vide est renvoyé si filenum n est pas valide. filenum : index du fichier à obtenir ; les index de fichier commencent à 1. Retour : Un document contenant une référence au fichier spécifié. Renvoie l étiquette du fichier spécifié. L étiquette est utilisée comme nom de fichier (extension non comprise) pour les pièces jointes des messages électroniques ou des bases de données. Une vide est renvoyée si filenum n est pas valide. filenum : index de l étiquette du fichier à obtenir ; les index de fichier commencent à 1. Une contenant l étiquette du fichier spécifié. doc GetFileRange(int start, int end) Renvoie une référence aux fichiers spécifiés ; le document renvoyé n étant pas une copie, toute modification apportée à ces fichiers affecte l original. int GetFileSize(int filenum) string GetFileType(int filenum) Description start : index du premier fichier à obtenir; les index de fichier commencent à 1. end : index du dernier fichier à obtenir. Un document contenant une référence aux fichiers spécifiés. Renvoie la taille en octets du fichier spécifié. La valeur zéro (0) est renvoyée si filenum n est pas valide. filenum : index de la taille du fichier à obtenir ; les index de fichier commencent à 1. Un entier indiquant la taille en octets du fichier spécifié. Renvoie le type (format de fichier ou extension) du fichier spécifié. Une vide est renvoyée si filenum n est pas valide. filenum : index du type de fichier à obtenir ; les index de fichier commencent à 1. Une contenant la valeur du type de fichier spécifié. Objets type de données 19

Syntaxe int GetNumberFiles() bool SetFileLabel(int filenum, string label) void SetFileLabelAll(string label) Description Renvoie le nombre de fichiers séparés dans ce document. Cette syntaxe ne renvoie pas le nombre de pages. Un entier spécifiant le nombre de fichiers de ce document. Définit l étiquette du fichier spécifié ; celle-ci est utilisée comme nom de fichier (extension non comprise) pour nommer des pièces jointes dans un message électronique ou des bases de données. Cette méthode échoue si filenum n est pas valide. filenum : index du fichier ; les index de fichier commencent à 1. label ; étiquette du fichier spécifié ; comme celle-ci est utilisée en tant que nom de fichier, elle doit respecter les règles de nomination des fichiers. Une valeur booléenne indiquant le succès ou l échec. Définit les étiquettes de tous les fichiers de ce document ; celle-ci est utilisée comme nom de fichier (extension non comprise) pour nommer des pièces jointes dans un message électronique ou des bases de données. label ; étiquette donnant tous les fichiers ; comme celle-ci est utilisée en tant que nom de fichier, elle doit respecter les règles de nomination des fichiers. Remarque : dans le cas des variables de type doc, l affectation de la variable est uniquement une référence. Cela signifie que les deux variables pointent vers le même jeu physique de fichiers constituant le document. Par conséquent, quand vous effectuez des modifications dans l'un des fichiers, il est modifié dans les deux documents. Pour créer différentes copies de travail des fichiers, utilisez les méthodes Copy ou CopyRange de l objet doc. Objets type de données 20

Opérateurs Symbole Description + Addition (équivaut à appeler AddDocument) [] Index (équivaut à appeler GetFile en utilisant ce même fichier) = Affectation (équivaut à appeler GetFileRange en utilisant tous les fichiers) Objets type de données 21

Entier L objet entier est utilisé avec des valeurs numériques sans virgule décimale. Une propriété ou une variable est de ce type lorsqu elle est déclarée comme int. L objet ne possède pas de propriété. Méthodes Syntaxe void Add(int num) real AsReal() string AsString() void Divide(int num) Description Ajoute num à la valeur en cours. La valeur de cet objet est modifiée. num : entier à ajouter à la valeur en cours. Convertit et renvoie la valeur en cours de cet objet sous forme d objet réel. La valeur de cet objet n est pas modifiée. Un réel indiquant la valeur de cet objet. Renvoie la valeur en cours de cet objet sous forme de. Cette syntaxe est fréquemment utilisée pour pouvoir employer la valeur de l entier dans une. Une indiquant la valeur de cet objet. Divise la valeur en cours par num. La valeur de cet objet est modifiée. num : entier diviseur. Objets type de données 22

Syntaxe void Mod(int num) void Multiply(int num) Description Divise la valeur en cours par num et définit la valeur de cet objet avec le reste. num : entier diviseur. Multiplie la valeur en cours par num. La valeur de cet objet est modifiée. num : entier multiplicateur. Retour : Opérateurs Symbole Description <, LT Inférieur à >, GT Supérieur à <=, LE Inférieur ou égal à >=, GE Supérieur ou égal à ==, EQ Egal à <>, NE,!= Différent de + Addition - Soustraction * Multiplication / Division % Modulo (reste) = Affectation Objets type de données 23

Exemples Instruction Valeur de X Commentaire int x 0 Déclare la variable x = 5 5 Affecte la valeur 5 à x x.mod(2) 1 5%2 donne 2 et renvoie 1 x.add(9) 10 x.subtract(2) 8 x.multiply(2) 16 x.divide(8) 2 x.asreal() 2 Renvoie 2.0. x.asstring() 2 Renvoie la "2". Remarque : les opérateurs mathématiques standard (+, -, *, /) peuvent aussi être utilisés. Objets type de données 24

Réel L objet réel est utilisé pour des valeurs numériques avec virgule décimale. Une propriété ou une variable est de ce type lorsqu elle est déclarée comme real. L objet ne possède pas de propriété. Méthodes Syntaxe void Add(real num) int AsInt () string AsString() Description Ajoute num à la valeur en cours. La valeur de cet objet est modifiée. num : réel à ajouter à la valeur en cours. Convertit et renvoie la valeur en cours de cet objet sous forme d objet entier. La valeur n est pas arrondie ; les chiffres qui suivent la virgule décimale sont tronqués, le cas échéant. La valeur de cet objet n est pas modifiée. Un entier indiquant la valeur de cet objet. Renvoie la valeur en cours de cet objet sous forme de. Cette syntaxe est fréquemment utilisée pour pouvoir employer la valeur du réel dans une. Une indiquant la valeur de cet objet. Objets type de données 25

Syntaxe void Divide(real num) void Multiply(real num) Description Divise la valeur en cours par num. La valeur de cet objet est modifiée. num : réel diviseur. Multiplie la valeur en cours par num. La valeur de cet objet est modifiée. num : réel multiplicateur. Opérateurs Symbole Description <, LT Inférieur à >, GT Supérieur à <=, LE Inférieur ou égal à >=, GE Supérieur ou égal à ==, EQ Egal à <>, NE,!= Différent de + Addition - Soustraction * Multiplication / Division = Affectation Objets type de données 26

Chaîne L objet est utilisé avec des valeurs de texte. Une propriété ou une variable est de ce type lorsqu elle est déclarée comme string. L objet ne possède pas de propriété. Méthodes Syntaxe string AsAlphaNumeric() doc AsDoc() int AsInt() Description Convertit et renvoie la valeur en cours de la sous forme de contenant uniquement les caractères alphanumériques de la valeur en cours ; tous les autres caractères sont supprimés. La valeur de cette n est pas modifiée. Une contenant uniquement les caractères alphanumériques de la en cours. Renvoie la valeur en cours de cette en tant que document. Le document possède un fichier contenant la valeur en cours de cette comme texte. Un document dont le texte est la valeur en cours de cette. Renvoie la valeur en cours de la sous forme d entier. La valeur en cours est lue jusqu au premier caractère non numérique. La valeur renvoyée est zéro (0) si la est vide ou si le premier caractère n est pas numérique. La valeur de cette n est pas modifiée. Un entier avec la valeur en cours de la comme entier. Objets type de données 27

Syntaxe string AsLower() real AsReal() string AsUpper() bool Compare(string string1) Description Convertit et renvoie la valeur en cours de cette en lettres minuscules seulement. Tous les caractères non alphabétiques demeurent inchangés. La valeur de cette n est pas modifiée. Une contenant la valeur en cours convertie en lettres minuscules seulement. Renvoie la valeur en cours de la sous forme de réel. La valeur en cours est lue jusqu au premier caractère non numérique. Les caractères numériques des nombres réels incluent la virgule décimale. La valeur renvoyée est zéro (0.0) si la est vide ou si le premier caractère n est pas numérique. La valeur de cette n est pas modifiée. Un réel correspondant à la valeur en cours de la sous forme de réel. Convertit et renvoie la valeur en cours de cette en lettres majuscules seulement. Tous les caractères non alphabétiques demeurent inchangés. La valeur de cette n est pas modifiée. Une contenant la valeur en cours convertie en lettres majuscules seulement. Compare la valeur en cours de cette à celle fournie. Cette comparaison tient compte de la casse. string1 : à laquelle est comparée la valeur en cours de cette. Une valeur booléenne TRUE si les s sont identiques, y compris la casse des caractères alphabétiques ; sinon une valeur FALSE. Objets type de données 28

Syntaxe bool CompareNoCase(string string1) void Concatenate(string string1) int Find(string substring, int start) string Left(int count) int Length() Description Compare la valeur en cours de cette à celle fournie. Cette comparaison ne tient pas compte de la casse. string1 : à laquelle est comparée la valeur en cours de cette. Une valeur booléenne TRUE si les s sont identiques, y compris la casse des caractères alphabétiques ; sinon une valeur FALSE. Ajoute string1 à la valeur en cours de cette. string1 : à ajouter. Recherche la première occurrence de la sous spécifiée dans la valeur en cours de cette. substring : sous- à rechercher. start : index du caractère dans cette à partir duquel la recherche doit commencer; la valeur 1 commence la recherche au début. Un entier indiquant la position de départ de la sous- dans cette ; 0 si la sous est introuvable. Renvoie les premiers caractères de count dans cette. Si count est supérieur à la longueur de la, la totalité de la est renvoyée. count : nombre de caractères à obtenir. Une contenant les premiers caractères count de la valeur en cours. Retourne le nombre de caractères dans cette. Retour : Un entier spécifiant le nombre de caractères de la. Objets type de données 29

Syntaxe string Mid(int start, int count) int Replace(string old, string new, int index, bool matchcase, bool wholeword) Description Renvoie une sous- de la en cours de longueur count commençant au caractère start. Les index de commencent à 1. start : index du premier caractère à inclure dans la sous-. count : nombre de caractères à inclure dans la sous- ; la valeur zéro (0) indique le reste des caractères de la. Une correspondant à la sous- de la valeur en cours et contenant les caractères inclus dans la plage spécifiée. Recherche la valeur en cours de la à partir de l index spécifié et remplace la première occurrence de l ancienne par la nouvelle. La recherche peut être basée sur le respect de la casse, voire même sur des mots entiers uniquement. old : à rechercher. new : qui doit remplacer l ancienne. index : entrée du champ d index. matchcase : indique si la recherche doit respecter la casse ou non. wholeword : indique si la recherche doit porter sur des mots entiers uniquement et non sur des parties de mots. Retour : Un entier indiquant l index du premier caractère de la qui correspond à celle recherchée. La valeur 0 est renvoyée en l absence de correspondance. Objets type de données 30

Syntaxe int ReplaceAll(string old, string new, bool matchcase, bool wholeword) string Right(int count) stringarray Separate(string separator) Description Recherche la valeur en cours de la et remplace toutes les occurrences de l ancienne par la nouvelle. La recherche peut être basée sur le respect de la casse, voire même sur des mots entiers uniquement. old : à rechercher. new : qui doit remplacer l ancienne. matchcase : indique si la recherche doit respecter la casse ou non. wholeword : indique si la recherche doit porter sur des mots entiers uniquement et non sur des parties de mots. Un entier indiquant le nombre de remplacements effectués. La valeur 0 est renvoyée en l absence de correspondance. Renvoie les derniers caractères count de la. Si count est supérieur à la longueur de la, la totalité de la est renvoyée. count : nombre de caractères à obtenir. Une contenant les derniers caractères count de la valeur en cours. Recherche la separator dans la valeur en cours de la ; à chaque occurrence trouvée, une nouvelle est formée en enlevant la valeur de separator. Quand la fin de la est atteinte, la partie restante est ajoutée au dernier élément du tableau. Si separator est introuvable, la entière est renvoyée comme premier élément du tableau. separator : utilisée comme valeur de séparateur. Un tableau de s dont chaque élément est une sans le séparateur. Objets type de données 31

Syntaxe void TrimBoth() void TrimLeft() void TrimRight() Description Enlève les espaces blancs au début et à la fin de la. Les espaces blancs sont des caractères de saut de ligne, d espace ou de tabulation. La valeur de la en cours est modifiée. Enlève les espaces blancs au début de la. Les espaces blancs sont des caractères de saut de ligne, d espace ou de tabulation. La valeur de la en cours est modifiée. Enlève les espaces blancs à la fin de la. Les espaces blancs sont des caractères de saut de ligne, d espace ou de tabulation. La valeur de la en cours est modifiée. Retour : Opérateurs Symbole Description <, LT Inférieur à (comparaison avec la casse) >, GT Supérieur à (comparaison avec la casse) ==, EQ Egal à (comparaison avec la casse) <>, NE Différent de (comparaison avec la casse) + Concaténation Objets type de données 32

Exemples : Chaîne str ayant la valeur «ABC123abc:789»: str.asalphanumeric() renvoie «ABC123abc789» str.asint() renvoie 0 str.aslower() renvoie «abc123abc:789» str.asreal() renvoie 0.0 str.asupper() renvoie «ABC123ABC:789» str.contains("123") renvoie TRUE str.find("123", 1) renvoie 4 str.length() renvoie 13 str.left(5) renvoie «ABC12» str.mid(6, 4) renvoie «3abc» str.right(4) renvoie «:789» Chaîne str ayant la valeur «12,45» : str.asreal() retourne 12,45 str.asint() retourne 12 Chaîne str ayant la valeur «La pomme n est pas la poire» : str.replace("est", "était", TRUE, FALSE, 1) renvoie 3 et change la valeur en : «La pomme n est pas la poire.» str.replace("est", "était", 1, FALSE, TRUE) renvoie 6 et change la valeur en : «La pomme n était pas la poire.» str.replaceall("pomme", "poire", FALSE,TRUE) renvoie 2 et change la valeur en : «La poire n est pas la pomme.» str.replaceall("poire", "pomme", TRUE, FALSE) renvoie 1 et change la valeur en : «La poire n est pas la pomme.» Objets type de données 33

Caractères d échappement Certains caractères devant figurer dans des s ne peuvent pas être représentés à l aide de caractères ordinaires. A cette fin, les objets prennent en charge les caractères d échappement suivants : Symbole Description ^n Nouvelle ligne sous Windows ^l Saut de ligne sous Unix ^r Retour chariot sous Unix ^t Tabulation ^^ Caret ^xdd Hex ^" Insertion de guillemets dans la Pour utiliser ces caractères, placez le caractère d échappement entre guillemets. Par exemple : string str = "Ligne 1^nLigne2^tTabulation à la colonne suivante" string msg = "Ceci est la ^"première^" entre guillemets." Objets type de données 34

Table L'objet table sert à contenir une collection de paires clé/valeur. Il permet de structurer des données d une certaine manière définie par l utilisateur. Il est également possible de subdiviser les données en catégories, auquel cas ces dernières peuvent ensuite avoir leurs propres paires clé/valeur. Toutes les clés et les valeurs de la table sont des s. Les données sont présentées comme suit : key = value category.key = value category.key = value Plusieurs niveaux de catégories sont autorisés. Chaque catégorie doit avoir au moins une paire clé/valeur. Une propriété ou une variable est de ce type lorsqu elle est déclarée comme table. L objet table ne possède pas de propriété. Méthodes Syntaxe void AddItem(string key, string value) map GetCategory(string category) stringarray GetCategoryList() Description Ajoute la paire clé/valeur à la table. Pour ajouter la paire clé/valeur à une catégorie spécifique, incluez le nom de la catégorie dans la clé, en les séparant par un point. Si la catégorie n existe pas, elle est créée. key : clé à ajouter à la table. value : valeur à affecter à la clé. Renvoie une table des paires clé/valeur qui appartiennent à la catégorie spécifiée. Si la catégorie n existe pas, une table sans entrée est retournée. category : nom de la catégorie. Une table des paires clé/valeur qui appartiennent à la catégorie spécifiée. Renvoie une liste des catégories de niveau supérieur de la table. S il n y a pas de catégorie, un tableau de s sans élément est retourné. Une liste des catégories de niveau supérieur de la table. Objets type de données 35

Syntaxe stringarray GetKeyList() string GetValue(string key) bool HasCategory(string category) bool HasKey(string key) Description Renvoie une liste des clés de niveau supérieur de la table. S il n y a pas de clé, un tableau de s sans élément est retourné. Une liste des clés de niveau supérieur de la table. Renvoie la valeur de la clé spécifiée. Pour obtenir la paire clé/valeur d une catégorie spécifique, incluez le nom de la catégorie dans la clé, en les séparant par un point. Si la clé spécifiée n existe pas, une vide est retournée. key : nom de la clé. Valeur de la clé spécifiée. Renvoie TRUE si la catégorie spécifiée figure dans la table. Pour vérifier si une catégorie possède une souscatégorie, séparez les noms de catégorie et de souscatégories par un point. category : nom de la catégorie. Valeur booléenne indiquant si la catégorie figure dans la table. Renvoie TRUE si la clé spécifiée figure dans la table. Pour vérifier si la paire clé/valeur figure dans une catégorie spécifique, incluez le nom de la catégorie dans la clé, en les séparant par un point. key : nom de la clé. Valeur booléenne indiquant si la clé figure dans la table. Exemples : Création d une table dont les clés de premier niveau sont «firstname» et «lastname», et qui possède une catégorie «address» : map info info.additem("firstname", "jean") info.additem("lastname", "dupont") info.additem("address.street", "123 Rue Grande") info.additem("address.city", "Ici") info.additem("address.state", "KY") info.additem("address.zip,", "40000") Objets type de données 36