uControl
Julio 31, 2014, 04:35:02 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: 1 [2]   Ir Abajo
  Imprimir  
Autor Tema: Lectura de archivo .hex en VC# para grabar en memoria EEPROM  (Leído 6839 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Ariel
Global Moderator
dsPIC
****
Conectado Conectado

Sexo: Masculino
Mensajes: 10608



WWW
« Respuesta #15 : Noviembre 21, 2010, 07:28:34 »

Es más o menos lo que hace Ariel en el código que muestra.

Satamente. Es simple y efectivo Wink

Lástima no saber nada de C# como para poder darte una ayuda más especifica Sad
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 601



« Respuesta #16 : Noviembre 21, 2010, 07:48:54 »

Muchas gracias  rolleyes2 rolleyes2 rolleyes2 rolleyes2 rolleyes2 rolleyes2

Tenían razón Suky y Ariel....al final resultaba ser una tontera el tema....

Solo hay que cargar el archivo en una cadena....y luego con la función:
Código:
Filtrodatos.Text = filtro.Substring(0,1);

puedo ir leyendo el archivo para sacar los datos que me interesan..muchas gracias  bang bang
En línea
Ariel
Global Moderator
dsPIC
****
Conectado Conectado

Sexo: Masculino
Mensajes: 10608



WWW
« Respuesta #17 : Noviembre 21, 2010, 07:49:53 »

 rolleyes2
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5434


Con Qt...


WWW
« Respuesta #18 : Noviembre 21, 2010, 08:31:03 »

 rolleyes2  Grin
En línea

Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 601



« Respuesta #19 : Noviembre 22, 2010, 09:47:30 »

Bueno luego de algunas horas peleandome con los tipos de datos  cabezaso a la pared en C#...ya pude dar mis primeros pasos con el archivo .hex gracias al código que puso ariel anteriormente.
Código:
private void abrirArchivoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filtro;
            Int32 DireccionDatos;
            Int32 CantidadDatos;
         
           

            AbrirArchivo.Filter = "Archivos (*.hex)|*.hex"; // Le damos la extensión de archivo a abrir.
            AbrirArchivo.FileName = ""; // Borramos el campo de nombre.

            if (AbrirArchivo.ShowDialog() == System.Windows.Forms.DialogResult.OK) // Mostramos cuadro de dialogo.
            {
                StreamReader ArchivoTexto = new StreamReader(AbrirArchivo.FileName); // Abro el archivo para lectura.

                filtro = ArchivoTexto.ReadLine(); // Leo una linea del archivo del archivo hex ...

                if (filtro != null) // Si hay datos...
                {
                    if (string.Compare(filtro.Substring(0,1), ":") == 0) // Si es el simbolo de inicio....
                    {
                       
                        if (string.Compare(filtro.Substring(7, 2), "00") == 0) // Si hay datos...
                        {
                            DireccionDatos = Convert.ToInt32(filtro.Substring(4,4),16); // Obtengo la dirección del primer dato..(0x00);
                            CantidadDatos = Convert.ToInt32(filtro.Substring(1, 2),16); // Obtengo la cantidad de datos que tiene la cadena..( 16 valores ).

                        }
                    }
                    ArchivoTexto.Close(); // Cierro el archivo.
                }
               
            }

        }

Lo que guardo en las variables DireccionDatos y CantidadDatos....corresponden a la dirección del primer dato y la cantidad de datos que contiene la primer línea del archivo.

Mis consultas ahora son las siguientes:

1° - como obtengo los 16 datos ?? hay alguna función que vos le pongas ....copiame conjuntos de 2 digitos desde tal posición de la cadena hasta tal posición de la cadena ?...por que yo haciendo ....filtro.Substring(9).....obtenia todos los datos desde esa posición en adelante...pero me agarraba también el cheksum... Idiota

2° - como obtengo las direcciones de los restantes datos ? por que en la función, ariel lee solo la primer posición de memoria..pero luego como hace para obtener las demas..  me voy a pique

3° - Todo el tratamiento de información lo hemos hecho para 1 sola línea del archivo....como hago para tratar las demás ?  duda

Bueno espero puedan darme una mano con esto que me tiene bastante intrigado....y disculpen por extenderme tanto  rolleyes
« Última modificación: Noviembre 22, 2010, 09:50:58 por Moyano Jonathan » En línea
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5434


Con Qt...


WWW
« Respuesta #20 : Noviembre 22, 2010, 10:58:51 »

1. No que yo conozca, vas a tener que hacer una función que te tome de a 2 caracteres, los convierta a byte y llene un buffer (Se me ocurre).

2. Ariel seguro la tiene clara, pero creo que al tener una dirección, la demás son consecutivas  Tongue

3. Esa sería una parte del código, que puedes llamar desde otra que va leyendo cada linea. Puede ser un while(){} hasta terminar de leer el hex.


Saludos!
En línea

Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 601



« Respuesta #21 : Noviembre 22, 2010, 11:13:30 »

Citar
Esa sería una parte del código, que puedes llamar desde otra que va leyendo cada linea. Puede ser un while(){} hasta terminar de leer el hex.

Pero como leo línea a línea ? ...por que usando la función ReadLine(), que anteriormente mencionaste ...puedo leer una línea...ahora el tema está en leer todas las líneas ...además la función ReadLine()....no me acepta parámetros..por lo que no puedo "hipotéticamente" decirle LEE...esta línea..ahi es donde me confunde  cabezaso a la pared
En línea
Ariel
Global Moderator
dsPIC
****
Conectado Conectado

Sexo: Masculino
Mensajes: 10608



WWW
« Respuesta #22 : Noviembre 22, 2010, 11:20:10 »

Hola!
Dale un vistazo  a la ayuda de la funcion que usas para abrir el archivo. No estoy en casa ahora, pero estoy seguro que C debe tener un modo de abrir como lectura y que el puntero (o como se llama) se mueva solo a la linea siguiente cada vez que lees una :)

Es tal como dice Suky. Yo corto cada linea en caracteres con MID$(cadena, desde, num caracteres), y con una funcion que hice (de gusto, despues descubri HEX$() que hacia lo mismo (alguien de aqui me paso el dato) los pasaba a hexa, y con otra a decimal segun me hiciese falta....

Suerte!  Wink
En línea

Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5434


Con Qt...


WWW
« Respuesta #23 : Noviembre 22, 2010, 11:20:42 »

Al utilizar nuevamente ReadLine() realiza la lectura de la siguiente, no de la misma  Wink
En línea

Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 601



« Respuesta #24 : Noviembre 22, 2010, 11:24:17 »

Bueno gracias por sus consejos...quedará investigar un poco más el manejo de cadenas en C#... Programando
En línea
Felixls
Moderador
PIC24F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 3034



WWW
« Respuesta #25 : Noviembre 22, 2010, 11:32:29 »

Moyano, aquí tienes varios ejemplos, por ahí ayuda

http://msdn.microsoft.com/es-es/library/ms228362(VS.80).aspx


aquí sobre el uso de streamreader para leer un archivo de texto

http://support.microsoft.com/kb/306777/es

Como consejo general, primero despejate las dudas del lenguaje, probalo en una aplicación consola simple y luego llevá ese conocimiento al problema real.

saludos.
En línea
Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 601



« Respuesta #26 : Noviembre 22, 2010, 11:39:38 »

Muchas gracias Felixls , me vienen de 10 los Link  bang

Me he dado cuenta que no se termina nunca de aprender a programar....cada problema tiene 1000 soluciones y para colmo en un montón de lenguajes diferentes  Golpe
En línea

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: 1 [2]   Ir Arriba
  Imprimir  
 
Ir a:  


La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.118 segundos con 29 consultas. (Pretty URLs adds 0.031s, 3q)
loggkey