• Sábado 21 de Septiembre de 2024, 07:31

Autor Tema:  Variables  (Leído 1786 veces)

fap1603

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Variables
« en: Sábado 29 de Mayo de 2004, 16:26 »
0
Hola a todos, les comento; estoy haciendo un programa que lee un fichero binario, tengo variables int, long, char. el problema esta cuando declaro mas de una variable int, al almacenar algun dato dentro de esta, me arroja un valor que no es el correspondiente. de la misma manerame pasa con las variables long, si declaro mas de 2, la tercera o el resto me arroja valores que no son validos, si utilizo la misma variable repetidas veces no me da error, pero deseo saber a que se debe esto, pues la necesidad de asignar una variable para un dato diferente es primordial. Muchas gracias.
Saludos,

Francisco Ayala Pinazo
Lima - Perú

Noel Solw

  • Miembro activo
  • **
  • Mensajes: 81
    • Ver Perfil
Re: Variables
« Respuesta #1 en: Domingo 30 de Mayo de 2004, 00:49 »
0
Trata de enviar la parte del codigo que te hace problemas, para ver donde esta la falla. Mencionar, por favor, el compilador usado.

fap1603

  • Miembro MUY activo
  • ***
  • Mensajes: 135
    • Ver Perfil
Re: Variables
« Respuesta #2 en: Martes 1 de Junio de 2004, 13:25 »
0
aqui pedazo de codigo, segun lo solicitado; Estoy utilizando Visual C++, escribo todo el codigo, no utilizo nada pre definido, todo lo escribo a mano., no uso mfc, ni api, aunque no se como mostrar el dialogo abrir de la api de windows, lo he probado y no me sale.

VOID leebin(HWND hWnd)
{
char    codigo[8];
   int atribs;
   int nptos;
   long ptomax;
   long ptomin;
   long ptos;
   long atbtxt;
   int i;
   char *texto;

while(!feof(fbinario))
       {
   fread(codigo,1,8,fbinario); //lee binario
     fprintf(stream2,"%s\n",codigo);//pinta ascii
   fread(&atribs,2,1,fbinario);//lee binario
     fprintf(stream2,"%d\n",atribs);//pinta ascii
   fread(&nptos,2,1,fbinario);//lee binario
     fprintf(stream2,"%d\n",nptos);//pinta ascii
   for (i=1;i<=3;i++) //extrae minimos
   {
         fread(&ptomin,4,1,fbinario);//lee binario
          fprintf(stream2,"%d\n",ptomin);//pinta scii
   }
   for (i=1;i<=3;i++) //extrae maximos
   {
         fread(&ptomax,4,1,fbinario);//lee binario
           fprintf(stream2,"%d\n",ptomax);//pinta scii
   }
   for (i=1; i<=3;i++) //extrae atrib txt
   {
         fread(&atbtxt,4,1,fbinario);//lee binario
           fprintf(stream2,"%d\n",atbtxt);//pinta ascii
   }
   if (codigo[0]==67)
   {
         for (i=1;i<= (atribs * 3);i++)
        {
             fread(&ptos,4,1,fbinario);//lee binario
                fprintf(stream2,"%d\n",ptos);//pinta ascci
        }
   }
   else
   {
       if (codigo[0]==84)
       {
           for (i=1;i<= 3;i++)
           {
               fread(&ptos,4,1,fbinario);//lee binario
                               fprintf(stream2,"%d\n",ptos);//pinta ascii
           }
          //redimension de cadena de texto
         fread(texto,1,(atribs-1) * 12 ,fbinario);//lee binario
           fprintf(stream2,"%s\n",texto);//pinta ascci
       }
   }
   //limpiar variables
       }
//cerrar ficheros
return;
}
Saludos,

Francisco Ayala Pinazo
Lima - Perú