Comunidad Gambas-es

Versión completa: Conversión directa de un array tipo cadena a tipo entero
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas!.

Tengo un array y le quiero añadir x's veces otro array.

Primero usé este código:

GAMBAS
  1. Public Sub Ejemplo1()
  2.   
  3.   Dim miarray As Integer[] = [1, 2, 3]
  4.   Dim apararepetir As Integer[] = [4, 5, 6]
  5.   Dim cuentaveces As Integer
  6.   
  7.   cuentaveces = 3
  8.   
  9.   For i = 1 To cuentaveces
  10.     miarray.Insert(apararepetir)
  11.   Next
  12.   



Ahora lo hice de otra forma más abreviada, algo más compleja, pero más rápida.
Fijaros en asignación del array.

GAMBAS
  1. Public Sub Ejemplo2()
  2.   
  3.   Dim cadena As String = "1,2,3"
  4.   Dim insertar As String = ",4,5,6"
  5.   Dim amiarray As New String[]
  6.   Dim anumeros As Integer[]
  7.   
  8.   'Uso del método estático String para repetir tantas veces como queramos la concatenación
  9.   'Concatenar todo lo anterior con la cadena que nos interesa
  10.   'Convertir cadena con caracter delimitador a array
  11.   
  12.   amiarray = Split(cadena & String(3, insertar), ",")  
  13.   
  14.   'Conversión directa del array de tipo cadena a tipo entero
  15.   anumeros = amiarray.Copy() 
  16.   
  17.   ' Print Object.Address(amiarray)
  18.   ' Print Object.Address(anumeros)
  19.   



¿ No existe una función parecida a Cstr o Cint para array's ?.  Smile
Sé que gambas puede convertir un tipo cadena a un entero directamente, pero  se le añade la función por motivos "educados".. Tongue
Pero convertir un array entero de tipo cadena a tipo entero ??. No había visto eso.

Saludos
(25-07-2020, 20:16)Shell escribió: [ -> ]Sé que gambas puede convertir un tipo cadena a un entero directamente
Pero convertir un array entero de tipo cadena a tipo entero ??. No había visto eso.
Es evidente que también ocurre con array.

Además, puedes asignar directamente la dirección de memoria del array de tipo cadena a el de tipo entero:
Código:
anumeros = amiarray
(25-07-2020, 23:08)vuott escribió: [ -> ]Además, puedes asignar directamente la dirección de memoria del array de tipo cadena a el de tipo entero:

En este caso como quería que fueran independiente un array del otro preferí usar una copia.
De todas formas son de distinto tipo. Quizás para cosas más complejas se pueda usar la misma dirección.

Siendo ejemplos pequeños no es cuestión de preocupación la memoria. Rolleyes

Otra cosa es hacerlo como procedimiento normal y requerido.  Intento de hacer la conversión de tipos
siempre, aunque Basic (Gambas) de esa posibilidad (automática), es "mal acostumbrar" al programador.

Descaradamente hay lenguajes que dejan algo más de libertad al programador y otros te van exigir
que hagas las cosas obligadamente de una forma si o si.
 
Cita: "La letra con sangre entra; pero con dulzura y amor se enseña mejor."

Claro que..
 
Cita:Suum cuique tribuere - dar a cada uno lo suyo. Ulpiano

Saludos
(26-07-2020, 11:14)Shell escribió: [ -> ]
(25-07-2020, 23:08)vuott escribió: [ -> ]Además, puedes asignar directamente la dirección de memoria del array de tipo cadena a el de tipo entero:

En este caso como quería que fueran independiente un array del otro preferí usar una copia.
Está bien.

 
Cita:Suum cuique tribuere - dar a cada uno lo suyo. Ulpiano
Consul, yo me inclino ante la sabiduría de ustedes, antiguos Latinos.