Pages: 1 [2]   Go Down
Author Topic: Comparación datos de cadena con EEPROM (SOLUCIONADO)  (Read 1801 times)
0 Members and 1 Guest are viewing this topic.
Palencia, Spain
Online Online
God Member
*****
Karma: 25
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Todo lo que has puesto lo he intentado. He convertido a ASCII por una función, luego por atoi.....Al final he hecho una función que devuelve el número que meto pero con 'x', que es lo que la string necesita.
Pero muchas gracias por tu ayuda, ahora necesito simplificar la función(ya que es muy extensa).
Perdona, pero me está constando a veces bastante entenderte. En el código de tu primer post, comienzas con unas declaraciones "raras", del tipo

    int valor='valor-48';
¿Quiero entender que tienes valores de dígito directamente y quieres convertirlos a su caracter ascii?
en ese caso, si suponemos que tienes
int a= 1; int b=5; int c=8; int d=0;
podrías pasarlos a sus dígitos correspondientes así:
char micadena[4]={a+'0',b+'0',c+'0',d+'0']; // Mi cadena contendrá {'1','5','8','0'}
 
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Después del primer post he ido actualizando el código para que se viera el progreso, y alguien que supiera, pudiera ayudarme.

En cuanto a las cadenas, hay que dejar una posición más para el carácter NULL.(http://arduino.cc/es/Reference/String)
Lo digo por,
Quote
char micadena[4]={a+'0',b+'0',c+'0',d+'0']; // Mi cadena contendrá {'1','5','8','0'}
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Perdona, pero me está constando a veces bastante entenderte. En el código de tu primer post, comienzas con unas declaraciones "raras", del tipo

    int valor='valor-48';

Como bien he dicho, era para hacer la conversión de ASCII.
Logged

Palencia, Spain
Online Online
God Member
*****
Karma: 25
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Perdona, pero me está constando a veces bastante entenderte. En el código de tu primer post, comienzas con unas declaraciones "raras", del tipo

    int valor='valor-48';

Como bien he dicho, era para hacer la conversión de ASCII.
Entonces no te compliques la vida; quita las comillas simples:
Valor de dígito a caracter:
char caracter=valor+48; // O char caracter=valor+'0'; pues supongo que 48 es el código ascii de '0'

Caracter de dígito a valor:
int valor=caracter-48; // O int valor=caracter-'0';
Logged

Alicante
Offline Offline
Sr. Member
****
Karma: 2
Posts: 413
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

LO TENGO.
 Me habéis abierto los ojos entre los dos...con lo de la conversión estaba todo bien, pero a la hora de comparar no le restaba 48!!!!
Quote
if(cadena[0]-48==usuario[0]&&cadena[1]-48==usuario[1]&&cadena[2]-48==usuario[2]&&cadena[3]-48==usuario[3])




@noter y @curro92, muchas gracias a los dos! +1
Logged

Pages: 1 [2]   Go Up
Jump to: