Comunidad Gambas-es
Conversión directa de un array tipo cadena a tipo entero - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: Conversión directa de un array tipo cadena a tipo entero (/thread-18.html)



Conversión directa de un array tipo cadena a tipo entero - Shell - 25-07-2020

Buenas!.

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

Primero usé este código:

Código:
Public Sub Ejemplo1()
  
  Dim miarray As Integer[] = [1, 2, 3]
  Dim apararepetir As Integer[] = [4, 5, 6]
  Dim i As Integer
  Dim cuentaveces As Integer
  
  cuentaveces = 3
  
  For i = 1 To cuentaveces
    miarray.Insert(apararepetir)
  Next
  
End

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

Código:
Public Sub Ejemplo2()
  
  Dim cadena As String = "1,2,3"
  Dim insertar As String = ",4,5,6"
  Dim amiarray As New String[]
  Dim anumeros As Integer[]
  
  'Uso del método estático String para repetir tantas veces como queramos la concatenación
  'Concatenar todo lo anterior con la cadena que nos interesa
  'Convertir cadena con caracter delimitador a array
  
  amiarray = Split(cadena & String(3, insertar), ",")  
  
  'Conversión directa del array de tipo cadena a tipo entero
  anumeros = amiarray.Copy() 
  
  ' Print Object.Address(amiarray)
  ' Print Object.Address(anumeros)
  
End

¿ 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


RE: Conversión directa de un array tipo cadena a tipo entero - vuott - 25-07-2020

(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



RE: Conversión directa de un array tipo cadena a tipo entero - Shell - 26-07-2020

(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


RE: Conversión directa de un array tipo cadena a tipo entero - vuott - 26-07-2020

(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.