---
title: roInt, roFloat, roString
slug: develop/es/roint-rofloat-rostring
docTags: 
createdAt: 2025-03-11T07:07:17.200Z
---

Los [tipos intrínsecos](docId\:WUQPHXGsf7Mp5QPDwarSJ) `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 [roVideoEvent](docId\:IIeSQVxyxWM5rPqYmUAa8) 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:

:::hint{type="info"}
Algunas [funciones globales](docId:8ViuBcC3f1MPXOoS0i8yf) 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

```text
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

```text
BrightScript> s = "one&&two"
BrightScript> print s.Tokenize("&")
one
two
```

### Trim() 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.

:::hint{type="success"}
`Instr()` también se ofrece como una [función global](docId:8ViuBcC3f1MPXOoS0i8yf) (tenga en cuenta que el índice de cadena de la función global comienza en 1).
:::

## Ejemplos

```text
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:

```text
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*:

```text
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
```

