Accéder aux valeurs du champ d'index

L'interface IAttributes représente une collection de champs d'index. Les éléments de la collection implémentent l'interface IAttribute .

Il est possible d'accéder aux éléments de la collection soit par l'index (consultez Utilisation des collections d'objets) soit par le nom du champ d'index. Si un champ spécifié n'existe pas dans la collection, une exception sera lancée.

Le tableau ci-dessous montre comment accéder aux champs d'index à partir d'un script d'indexation automatique.

Langage Accéder à un champ d'index par l'index Accéder à un champ d'index par le nom
C# doc.Attributes[0] doc.Attributes["Name"]
Visual Basic .NET doc.Attributes(0) doc.Attributes("Name")
JScript .NET doc.Attributes(0) doc.Attributes("Name")
JScript this.Attributes(0) this.Attributes("Name")
VBScript Me.Attributes(0) Me.Attributes("Name")

Vous pouvez obtenir et définir la valeur d'un champ d'index à l'aide de la propriété Valeur de l'interface IAttribute . Par exemple :

// C#
IAttribute attr = doc.Attributes("Name");
var current = attr.Value;
attr.Value = ...;

Le type de la valeur dépend du type du champ d'index (voir le tableau ci-dessous).

Type de champ d'index Type VARIANT Type .NET
DAT_Boolean VT_BOOL bool
DAT_Enumeration VT_BSTR string
DAT_SingleLine VT_BSTR string
DAT_MultipleLines VT_DISPATCH (IStringsCollection) IStringsCollection
DAT_RegularExpression VT_BSTR string
DAT_DateTime VT_DATE DateTime
DAT_Number VT_R8 double
DAT_Currency VT_CY double
DAT_Url VT_BSTR string

Les champs de type DAT_MultipleLines peuvent être affectés aux valeurs qui sont des tableaux de chaînes ou des objets de type IStringsCollection. Quelques exemples sont présentés dans le tableau ci-dessous.

Langage Exemple
C# doc.Attributes["Authors"].Value = new string[] {"Bob", "Alice"};
Visual Basic .NET doc.Attributes("Authors").Value = new string() {"Bob", "Alice"}
JScript .NET doc.Attributes("Authors").Value = ["Bob", "Alice"];
JScript this.Attributes("Authors").Value = ["Bob", "Alice"];
VBScript Me.Attributes("Authors").Value = Array("Bob", "Alice")

Les champs de type DAT_DateTime peuvent être affectés aux valeurs qui sont des objets de type Date (dans VBScript ou JScript) ou System.DateTime (dans les langages .NET). Quelques exemples sont présentés dans le tableau ci-dessous.

Langage Exemple
C# doc.Attributes["Date"].Value = System.DateTime.Now;
Visual Basic .NET doc.Attributes("Date").Value = System.DateTime.Now
JScript .NET doc.Attributes("Date").Value = System.DateTime.Now;
doc.Attributes("Date").Value = new Date(...);
doc.Attributes("Date").Value = (new Date(...)).getVarDate();
JScript this.Attributes("Date").Value = new Date(...);
this.Attributes("Date").Value = (new Date(...)).getVarDate();
VBScript Me.Attributes("Date").Value = CDate(...)
Me.Attributes("Date").Value = Now

Les champs de type DAT_Currency peuvent être affectés aux valeurs qui sont des nombres de n'importe quel type ou objet de type Currency (dans VBScript), System.Decimal (dans les langages .NET) ou System.Runtime.InteropServices.CurrencyWrapper (dans les langages .NET). Quelques exemples sont présentés dans le tableau ci-dessous.

Langage Exemple
C# doc.Attributes["Amount"].Value = 123.456;
doc.Attributes["Amount"].Value = 123.456m;
doc.Attributes["Amount"].Value = new System.Runtime.InteropServices.CurrencyWrapper(123.456m);
Visual Basic .NET doc.Attributes("Amount").Value = 123.456
doc.Attributes("Amount").Value = 123.456D
doc.Attributes("Amount").Value = new System.Runtime.InteropServices.CurrencyWrapper(789.012D)
JScript .NET doc.Attributes("Amount").Value = 123.456;
doc.Attributes("Amount").Value = new System.Decimal(123.456);
doc.Attributes("Amount").Value = new System.Runtime.InteropServices.CurrencyWrapper(123.456);
JScript this.Attributes("Amount").Value = 123.456;
VBScript Me.Attributes("Amount").Value = 123.456
Me.Attributes("Amount").Value = CCur(123.456)

26.03.2024 13:49:50

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.