fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

convertir una varia...
 
Avisos
Vaciar todo

convertir una variable string a Integer

9 Respuestas
4 Usuarios
0 Reactions
8,405 Visitas
mediopixel
Respuestas: 41
Topic starter
(@mediopixel)
Eminent Member
Registrado: hace 19 años

Hola, Alguién sabe cómo convertir una variable String a Integer?. Estoy utilizando CInt() y me devuelve un error de "Type mismatch".

El caso es que CInt() está reflejado en la referencia de lenguaje para Basicx-24 pero me devuelve que está mal escrito al compilar. Si lo hago al revés, si convierto un valor Integer a String con CStr() si que lo pilla.

¿Sabe alguien la solución a esto?¿De qué otro modo puedo hacerlo?

Os paso el ejemplito que he hecho y que no me funciona.

' Basicx-24 (Editor del Basicx downloader V2.1)
Option Explicit

Public Sub Main()

Dim VarStr As String
Dim VarInt As Integer

VarStr = "12345678"
VarInt = CInt(Pulso(1))

End Sub

Saludos y gracias de antemano.

Responder
8 respuestas
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

mediopixel, lo que tienes que hacer es coger uno por uno los caracteres del string y pasarlos a la variable int. Lo hago en C pq en Basic lo llevo muy olvidado:

string varStr = "12345678";
int varInt = 0;

for (int i = 0 ; i<len(varStr); i++)
varInt = varInt*10 + (varStr(i) - '0');

a ver, lo he hecho un poco "en plan guarro" pero os lo explico.

En C un string es un vector de chars (caracteres) terminados en un '/0' (caracter NULL), lo que hago es coger cada uno de los caracteres e irlos añadiendo, el *10 hace que se pase al siguiente digito y el -'0' convierte el valor ASCII del caracter en el número correspondiente.

S2

Ranganok Schahzaman

PD: No se si esta demasiado bien explicado, pero si queda alguna duda preguntar.

Responder
ucfort
Respuestas: 760
(@ucfort)
Ardero
Registrado: hace 19 años

suponiendo que CInt() realice la funcion que dices, estas seguro de que en Pulso(1) tienes un valor literal? porque el error es lo que te dice que no concuerdan los tipos, no que no comprenda la sentencia.

Responder
ionitron
Respuestas: 98
(@ionitron)
Trusted Member
Registrado: hace 19 años

hombre... tas intentando meter en un integer que se supone que es de 8bits (no tengo ni idea de que va ese compilador ni pa que micro es.. pero aunque fuese de 16bits tampoco llegaba..) un numero decimal que rebosa con creces a 255... "12.345.678" namenos...

Responder
ucfort
Respuestas: 760
(@ucfort)
Ardero
Registrado: hace 19 años

mmm, es posible ioni, pero eso no le daria en error de desbordamiento o numero demasiado grane? out of range (o algo asi)

Responder
Página 1 / 2
Compartir: