roInt, roFloat, roString
Los tipos intrínsecos Int32, Flotar, y Cadena tienen equivalentes de objeto e interfaz. Estos son útiles en las siguientes situaciones:
- Se necesita un objeto en lugar de un valor tipado (por ejemplo, el objeto roList mantiene una lista de objetos). Cuando se pasa un entero, float o string a una función que espera un objeto BrightScript como parámetro, BrightScript crea automáticamente el objeto equivalente.
- Si cualquier objeto expone las interfaces ifInt, ifFloat o siCadena, ese objeto puede utilizarse en cualquier expresión que espere un valor tipado. Por ejemplo, un roVideoEventroVideoEvent puede utilizarse como un entero con un valor que representa el ID del evento.
Operaciones con enteros
Si "o" es del tipo roInt, entonces estas sentencias tendrán los siguientes efectos:
- imprimir o: Imprime el valor de o.GetInt()
- i%=o: Asigna al entero i% el valor de o.GetInt().
- k=o: Presumiblemente k se tipa automáticamente, por lo que se convierte en otra referencia al roInt o.
- o=5: Esto NO es lo mismo que o.SetInt(5). En su lugar, libera o, cambia el tipo de o a roINT32 (o se tipa automáticamente) y le asigna el valor 5.
ifInt
roInt contiene la interfaz ifInt , que proporciona lo siguiente:
GetInt() As Integer
Devuelve el valor entero del objeto.
SetInt(value As Integer) As Void
Establece el valor entero del objeto.
ifIntOps
roInt también contiene la interfaz ifIntOps , que proporciona lo siguiente:
ToStr() As String
Devuelve el valor entero como un string. No se agrega un espacio al principio para números positivos.
ifFloat
roFloat contiene la interfaz ifFloat , que proporciona lo siguiente:
GetFloat() As Float
Devuelve el valor float del objeto.
SetFloat(value As Float) As Void
Establece el valor float del objeto.
ifString
roString contiene la interfaz siCadena , que proporciona lo siguiente:
GetString() As String
Devuelve el valor string del objeto.
SetString(value As String) As Void
Establece el valor string del objeto.
ifStringOps
roString también contiene la interfaz ifStringOps , que proporciona lo siguiente:
Algunas funciones globalesglobal functions ofrecen la misma funcionalidad que los métodos de ifStringOps. Los índices de función de los métodos de ifStringOps empiezan en cero, mientras que los de las funciones globales empiezan en uno.
SetString(str As String, str_len As Integer)
Establece el valor de cadena del objeto utilizando los valores especificados de cadena y longitud de cadena. Esto es similar al método SetSeting() , que no acepta un parámetro para la longitud de la cadena.
AppendString(str As String, str_len As Integer)
Agrega al valor de cadena del objeto utilizando los valores especificados de cadena y longitud de cadena. Este método se modifica a sí mismo; esto puede causar resultados inesperados cuando pasa un tipo de cadena intrínseco, en lugar de un objeto de cadena.
Ejemplo
x="string"
x.ifstringops.appendstring("ddd",3)
print x 'will print 'string'
y=box("string")
y.ifstringops.appendstring("ddd",3)
print y 'will print 'stringddd'Len() As Integer
Devuelve el número de caracteres en una cadena.
GetEntityEncode() As String
Devuelve la cadena con ciertos caracteres reemplazados por secuencias de codificación de entidades HTML:
Carácter | Reemplazado por |
|---|---|
" (comillas dobles) | " |
' (comillas simples) | ' |
< | < |
> | > |
& | & |
Tokenize(delim As String) As roList
Divide una cadena en subcadenas utilizando los caracteres delimitadores especificados. El parámetro delim puede contener uno o más caracteres para tratar como delimitadores. Si el objeto de cadena contiene múltiples delimitadores contiguos, se tratarán como un único delimitador. Este método devuelve las subcadenas como un objeto roList; los delimitadores no se devuelven con las subcadenas.
Ejemplo
BrightScript> s = "one&&two"
BrightScript> print s.Tokenize("&")
one
twoTrim() As String
Devuelve la cadena con cualquier carácter de espacio en blanco inicial y final (p. ej., TAB, LF, CR, VT, FF, NO-BREAK SPACE) eliminado.
ToInt() As Integer
Devuelve el valor de la cadena como un número entero.
ToFloat() As Float
Devuelve el valor de la cadena como un número de punto flotante.
Left(n As Integer) As String
Devuelve los primeros n caracteres de la cadena.
Right(n As Integer) As String
Devuelve los últimos n caracteres de la cadena.
Mid(start_index As Integer) As String
Devuelve un subconjunto de la cadena que comienza en el valor de start_index basado en cero y termina al final de la cadena.
Mid(start_index As Integer, n As Integer) As String
Devuelve un subconjunto de la cadena, que comienza en el índice basado en cero start_index y consta de n caracteres. Si la cadena contiene menos de n caracteres después del start_index especificado, este método devolverá todos los caracteres después del start_index.
Instr(substring As String) As Integer
Devuelve el índice basado en cero de la primera aparición de la subcadena en la cadena. Si la subcadena no aparece en la cadena, este método devuelve -1.
Instr(start_index As Integer, substring As String) As Integer
Devuelve el índice basado en cero de la primera aparición de la subcadena después del start_index especificado en la cadena. Si la subcadena no aparece después del start_index especificado, este método devuelve -1.
Instr() también se ofrece como una función globalfunción global (tenga en cuenta que el índice de cadena de la función global comienza en 1).
Ejemplos
BrightScript> o=CreateObject("roInt")
BrightScript> o.SetInt(555)
BrightScript> print o
555
BrightScript> print o.GetInt()
555
BrightScript> print o-55
500 Un valor entero de 5 se convierte automáticamente al tipo roInt porque el método AddTail() espera un objeto BrightScript como parámetro:
BrightScript> list=CreateObject("roList")
BrightScript> list.AddTail(5)
BrightScript> print type(list.GetTail()) Aquí, el método ListDir() devuelve un objeto roList que contiene objetos roString:
BrightScript> l=ListDir("/")
BrightScript> for i=1 to l.Count():print l.RemoveHead():next
test_movie_3.vob
test_movie_4.vob
test_movie_1.vob
test_movie_2.vob