Acceder a valores de campo de índice
La interfaz IAttributes representa una colección de campos de índice. Los elementos de la colección implementan la interfaz IAttribute.
Es posible acceder a los elementos de la colección por el índice (véase Usar colecciones de objetos) o por el nombre de campo de índice. Si no existe el campo especificado en la colección, se producirá una excepción.
En la siguiente tabla se muestra cómo acceder a campos de índice desde un script de indexación automática.
Lenguaje | Acceder a un campo de índice por el índice | Acceder a un campo de índice por el nombre |
---|---|---|
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") |
Puede obtener y establecer el valor de un campo de índice mediante la propiedad Value de la interfaz IAttribute . Por ejemplo:
// C#
IAttribute attr = doc.Attributes("Name");
var current = attr.Value;
attr.Value = ...;
El tipo de valor depende del tipo del campo de índice. (Véase la siguiente tabla).
Tipo de campo de índice | Tipo VARIANT | Tipo .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 |
A los campos de tipo DAT_MultipleLines se les pueden asignar valores que sean matrices de cadenas u objetos de tipo IStringsCollection. La siguiente tabla contiene varios ejemplos.
Lenguaje | Ejemplo |
---|---|
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") |
A los campos de tipo DAT_DateTime se les pueden asignar valores que sean objetos de tipo Date (en VBScript o JScript) o System.DateTime (lenguajes .NET). La siguiente tabla contiene varios ejemplos.
Lenguaje | Ejemplo |
---|---|
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 |
A los campos de tipo DAT_Currency se les pueden asignar valores que sean números de cualquier tipo u objetos de tipo Currency (en VBScript), System.Decimal (en lenguajes .NET) o System.Runtime.InteropServices.CurrencyWrapper (en lenguajes .NET). La siguiente tabla contiene varios ejemplos.
Lenguaje | Ejemplo |
---|---|
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:49