Autor Tema: Rellenar con 0´s espacios en Blanco de Buffer  (Leído 1872 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Rellenar con 0´s espacios en Blanco de Buffer
« en: 09 de Octubre de 2013, 18:59:54 »
Buenas amigos de TodoPic,

Resulta que tengo que crear un Buffer con tres números flotantes. El formato que deben tener dichos numeros son

#1: xxx,xx
#2: x,xx
#3: xxxx,xxx

Es decir que si por ejemplo, el #1 que tengo en mi buffer es 2,3 al momento de crear el nuevo Buffer debe ser guardado como sigue

#1: 002,30

y asi con los demas.

El Buffer donde tengo los datos cada Byte corresponde a un numero y a la coma si corresponde.Por ejemplo:

Buff[0]=2
Buff[1]=,
Buff[2]=3

En realidad me gustaria que me ayudaran con ideas, porque en realidad estoy bloqueado y la unica idea que se me ocurre es revisar Byte a Byte y me resulta un metodo bastante extenso :S ...

Gracias de antemanooo!!!!!!

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #1 en: 09 de Octubre de 2013, 19:24:22 »
Hola, fijate la función sprintf ... es una manera ...

Saludos !

Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #2 en: 09 de Octubre de 2013, 19:30:12 »
Hola, fijate la función sprintf ... es una manera ...

Saludos !
Gracias, no especifique, estoy trabajando con un PIC24FJ128GA310 Compilador XC16 ... Existiria alguna libreia para esto? porque segun lo que he podido leer en iNTERNET son explicaciones del metodo pero no implemnetarlo :(

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #3 en: 09 de Octubre de 2013, 20:57:56 »
Hola, fijate la función sprintf ... es una manera ...

Saludos !
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #4 en: 10 de Octubre de 2013, 10:22:13 »

Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #5 en: 10 de Octubre de 2013, 10:30:27 »
Hola, fijate la función sprintf ... es una manera ...

Saludos !
:(  ... yo se q esa funcion existe el asunto es q no se como usarla, se me dice que debo incluirla en mi proyecto pero apenas la incluyo me manda cientos de errores de RANEMD, CONFLICTYING etc etc... entonces yo no la incluyo pero pareiera que si estuviera incluida ya que cuando ala escribo (la funcion sprointf) me aparec y me da vinculo hacia ella, pero la forma esta declada no entiendo

extern int sprintf(char *, const char *, ...);

Y compilo con un ejemplo y todoooooooo el prorama se me daña, se reinicia el micro cada n veces de forma no peridica, asi q ... como al principio sigo sin saber q hacer




Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #6 en: 10 de Octubre de 2013, 11:15:28 »
Si es tan solo pasar un buffer con números ( lo de float es solo una representación ) podrías hacerlo así.

Código: C
  1. char Buffer1[] = "2.3";
  2. char Buffer2[] = "12.7";
  3. char Buffer3[] = "77";

Ahora si necesitas "formatear" podes usar la función sprintf de esta manera

Código: C
  1. #include <stdio.h>
  2.  
  3. void main( void )
  4. {
  5.  char str[20]  = "";
  6.  float f = 4.5;
  7.  sprintf(str, "%3.2f", f );
  8. }

La función sprintf ( xprintf ) son estandares, todos los compiladores que sean serios deberían soportarlas. El header de inclusión es stdio.h. Hay cientos de ejemplos en la net sobre el uso de esta función.

El segundo ejemplo se refiere al formateo del # 1

Saludos !



Desconectado Rikr09

  • PIC16
  • ***
  • Mensajes: 112
Re: Rellenar con 0´s espacios en Blanco de Buffer
« Respuesta #7 en: 10 de Octubre de 2013, 11:37:03 »
Si es tan solo pasar un buffer con números ( lo de float es solo una representación ) podrías hacerlo así.

Código: C
  1. char Buffer1[] = "2.3";
  2. char Buffer2[] = "12.7";
  3. char Buffer3[] = "77";

Ahora si necesitas "formatear" podes usar la función sprintf de esta manera

Código: C
  1. #include <stdio.h>
  2.  
  3. void main( void )
  4. {
  5.  char str[20]  = "";
  6.  float f = 4.5;
  7.  sprintf(str, "%3.2f", f );
  8. }

La función sprintf ( xprintf ) son estandares, todos los compiladores que sean serios deberían soportarlas. El header de inclusión es stdio.h. Hay cientos de ejemplos en la net sobre el uso de esta función.

El segundo ejemplo se refiere al formateo del # 1

Saludos !




Graciasssssssssss!!!!   ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ya con este ejemplo empezare a ver los diferntes tipos de formato que le puedo dar al flotante y poder asi hacer lo que necesito... EXCELENTE AYUDA!!!  :-/ :-/ :-/ ((:-)) ((:-))