Hola Pepe:
No te preocupes por que tardes en tu respuesta, cada uno tenemos cosas que hacer y no siempre podemos entrar al foro.
Voy a entrar solo en el motivo de por que no te funciona el codigo de prueba que has hecho, de esa forma, al comprender el motivo podras luego hacer el codigo que tu quieras.
En definitiva, lo que pretendo es que entiendas el error desde su origen, por que asi podras resolverlo. Si te pegan un tiro en un pie y te tomas un calmante, se te pasará el dolor mientras dure el efecto del calmante, pero luego seguiras teniendo dolor. Si sacas la bala y curas la herida el dolor desaparecerá
. Hoy dia con las prisas olvidamos que para resolver un problema tenemos que ir a su origen, si intentamos “poner parches” no lograremos resolver el problema definitivamente.
La solución que te da Cuellar es buena para lo que buscabas en un principio, pero pienso que si te digo donde has cometido el error te valdrá para el futuro.
Hace años, cuando se estudiaba programación a nivel máquina o ensamblador
y no tenias las herramientas de desarrollo que existen ahora, depurar un programa era complejo, entonces lo que haciamos era tener una lista de las variables con sus valores, y conforme se iban modificando ponias sus nuevos valores, esto ahora lo puedes hacer con el debug (rapid)
Bien, después de todo este rollo
, empecemos a ver que pasa con el programa.
- Entra en el Activity_Create e inicializa el
List1
- Va a leer el fichero
Como no existe te da el mensaje y pone las variables:
Dato1 = ""
Dato2 = ""
DatosOk = False
- Pulsas el boton de grabar y pones las variables:
Dato1=Label1.Text
Dato2=Label2.Text
Si en diseño no le has dado ningun valor,
Label1 y
Label2,
Dato1 y
Dato2 estan vacias.
- Manda a grabar el fichero
- Resetea la lista (
List1.Clear), y pone el valor de las variables
Dato1 y
Dato2 en la lista.
Que ha grabado aquí? nada, dos cadenas vacias. Si miras el fichero, este existe y contiene dos
0A en Hexadecimal, Line Feed (avance de linea)
Como tu dices, solo te funciona a medias si copio los ficheros.
Cuando tu copias los ficheros y entras la primera vez, el programa lee esos datos y te dice que hay datos, pero al darle al boton de grabar pasa lo que hemos visto en la secuencia anterior, que lo graba con cadenas vacias por que no hay datos para grabar.
Conclusión, el programa funciona pero como las etiquetas
label1 y
label2 estan sin texto no graba nada. Cambialas por
EditText1 y
EditText2 y cambia en el boton de grabar el
Dato1=Label1.Text y
Dato2=Label2.Text por
Dato1=EditTex1.Text y
Dato2=EditTex2.Text, y pon datos dentro antes de darle al boton de grabar y veras como se conservan los datos.
Por otro lado, el ejemplo que le puse a Casan79 era especifico de lo que el queria y ya comenté que hay mil formas de resolverlo, asi que como dice Cuellar los datos cada vez que das a grabar se machacan. Si no quieres que ocurra esto, puedes eliminar (o comentar) el
List1.Clear del GrabarFichero y los datos te los irá grabando a continuación unos detrás del otro, o empleas la opcion que te da Cuellar, lo que a ti te guste mas.
Si eliminas el List1.Clear prueba de ir poniendo datos nuevos en
EditTex1 y
EditTex2 y veras como en el fichero se graban secuencialmente.
Espero haberte ayudado
Saludos