TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: NANO1985 en 22 de Septiembre de 2009, 16:45:30

Título: pasar de String a Long
Publicado por: NANO1985 en 22 de Septiembre de 2009, 16:45:30
hola muchachos... estaba programando en mikroC y despues de buscar y buscar,
no tiene ésta bendita funcion "StrToLong(string,value)"...
alguno sabe cómo convertir un String de 3 bytes a un solo registro tipo Long?
saludos y muchas gracias
Título: Re: pasar de String a Long
Publicado por: Suky en 22 de Septiembre de 2009, 16:48:05
Si no lo tiene implementado no queda otra que tomar el carácter, restarle 0x30 y multiplicarlo por 10, 100, 1000 o 10000 según corresponda  :?

Saludos!
Título: Re: pasar de String a Long
Publicado por: NANO1985 en 22 de Septiembre de 2009, 17:22:20
mmmm eso me parecia que iba a tener que terminar haciendo,... bue...
de todas forma siempre aparece el gran suky por éstos lados!.... muchas gracias hermano!
saludos  8)
Título: Re: pasar de String a Long
Publicado por: Suky en 22 de Septiembre de 2009, 17:55:31
Otra que te queda es revisar stdlib de CCS y buscar la función atoi para poder hacer la tuya en MikroC  ;-)


Saludos!
Título: Re: pasar de String a Long
Publicado por: NANO1985 en 22 de Septiembre de 2009, 19:05:51
Otra que te queda es revisar stdlib de CCS y buscar la función atoi para poder hacer la tuya en MikroC  ;-)


Saludos!

muchas gracias  8)
Título: Re: pasar de String a Long
Publicado por: gera en 22 de Septiembre de 2009, 19:22:05
No conozco mikroC, pero no tiene la funcion atol()? Es estandar asiq todos los compiladores deberian tenerla. Recibe un string y devuelve un long int
long int atol(const char *numPtr);

saludos!!
Título: Re: pasar de String a Long
Publicado por: MLO__ en 22 de Septiembre de 2009, 19:42:14
Hola.

MikroC es ANSI C y tiene las siguientes funcioncillas:


listar para ser usadas con la stdlib

Saludos
Título: Re: pasar de String a Long
Publicado por: NANO1985 en 23 de Septiembre de 2009, 15:04:27
No conozco mikroC, pero no tiene la funcion atol()? Es estandar asiq todos los compiladores deberian tenerla. Recibe un string y devuelve un long int
long int atol(const char *numPtr);

saludos!!

no me había fijado en la funcion atol ()!!!  :-/.... (recuerden que no hace mucho tiempo que estoy con el CCS y el mikroC)
muchas gracias gera! y MLO__!
saludos german  8)
Título: Re: pasar de String a Long
Publicado por: Marttyn en 09 de Junio de 2010, 14:32:51
Eso de tener que añadir una libreria, y que ademas no haga exactamente lo que necesito no me convence  :?
Tengo una cadena de 35 caracteres, y los 3 primeros son numeros, pudiendo formar del 000 al 999.
Lo que hago es:
Código: C
  1. int C = 0;      //centenas
  2. int D = 0;      //decenas
  3. int U = 0;      //unidades
  4.  
  5.         C = Buffer[0];
  6.         D = Buffer[1];
  7.         U = Buffer[2];
  8.        
  9.         //convierto el valor del numero ASCII en su numero correspondiente
  10.         C = C - 0x30;
  11.         D = D - 0x30;
  12.         U = U - 0x30;
  13.        
  14.         Numero = (long)C * 100 + D * 10 + U;

Todavia no lo probe, ya que tengo que seguir con la programacion.
Pero os parece que puede ir funcionar? O al pasar de un CHAR a un INT me hara automaticamente la conversion?
Salu2