Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

Borrar este aviso
El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Conversión directa de un array tipo cadena a tipo entero
#1

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

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak
Responder
#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
Responder
#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

“Nunca confíes en un ordenador que no puedas lanzar por la ventana” – Steve Wosniak
Responder
#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.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)