Shell   25-07-2020, 20:16
#1
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
Última modificación: 25-07-2020, 20:20 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   25-07-2020, 23:08
#2
(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

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
Shell   26-07-2020, 11:14
#3
(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

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   26-07-2020, 17:21
#4
(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.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 4 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.