La misma pregunta en FILE!

  • darren
  • Born
  • Born
  • No Avatar
  • Registrado: Sep 26, 2003
  • Mensajes: 3
  • Status: Offline

Nota Septiembre 30th, 2003, 9:21 am

Código: [ Select ]
FILE *fp;
  int i;
  
  fp = fopen("C:\My Documents\book\seats.db", "w");
  if(fp == NULL)
  {
    printf("Can't create file: Data\seats.db");
    exit(0);
  }
  else
  {
    for(i = 0; i < 8; i++)
    {
      fprintf(fp, "XXXXXXXX");
      if(i != 7)
      {
        fprintf(fp, "\n");
      }
    }    
    fclose(fp);
   
  }
}
  1. FILE *fp;
  2.   int i;
  3.   
  4.   fp = fopen("C:\My Documents\book\seats.db", "w");
  5.   if(fp == NULL)
  6.   {
  7.     printf("Can't create file: Data\seats.db");
  8.     exit(0);
  9.   }
  10.   else
  11.   {
  12.     for(i = 0; i < 8; i++)
  13.     {
  14.       fprintf(fp, "XXXXXXXX");
  15.       if(i != 7)
  16.       {
  17.         fprintf(fp, "\n");
  18.       }
  19.     }    
  20.     fclose(fp);
  21.    
  22.   }
  23. }


He creado un archivo con estas caracter "X". Me gustaría buscar un punto de...
XXXXXXX
XXXXXXX
XXXXXXX
XXXXXXX
por ejemplo, está por encima de Wat en el archivo que he guardado y me gustaría que seleccione un punto de Coti desea sobrescribir con una letra "O". Como este ejemplo a continuación

XXXXXXX
XXXXXXX
XXOXXXX
XXXXOXX

¿Alguien puede ayudarme por favor? Esperamos que usted pueda entender wat i tratando de decir.
Thanx!
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Septiembre 30th, 2003, 9:21 am

  • UNFLUX
  • Genius
  • Genius
  • Avatar de Usuario
  • Registrado: Dic 20, 2002
  • Mensajes: 6382
  • Loc: twitter.com/unflux
  • Status: Offline

Nota Septiembre 30th, 2003, 12:24 pm

:shock: lo que el....

hehe No tengo ni idea de lo que usted está pidiendo, pero tal vez alguien más
voluntad. perdón...
UNFLUX.FOTO
  • billstack
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Sep 30, 2003
  • Mensajes: 5
  • Status: Offline

Nota Octubre 1st, 2003, 12:54 am

Si desea utilizar los archivos, y luego hacer algo como lo siguiente. Un enfoque más eficaz sería mantener todo en la memoria, pero esto puede no ser lo que quieres. También tenga en cuenta que \ n puede convertirse en combinaciones de caracteres diferentes en los distintos sistemas, por lo que he modificado el código original para el uso (char) 10 como separador de fila.

Una advertencia final: el código siguiente no sólo lo que usted pidió, no es eficaz en todos, y nunca debe ser utilizado en cualquier código de tiempo crítico, o en cualquier código en changeSeat sea llamado regularmente (o, cuando la base de datos es grande).

Código: [ Select ]
#include <stdio.h>

#define SEATS_DATABASE "seats.db"
#define NUM_ROWS    8
#define NUM_SEATS   8

void initDataBase(void)
{
  FILE *fp;
  int i;
  int j;

  fp = fopen(SEATS_DATABASE, "w");
  if(fp == NULL)
  {
    printf("Can't create file");
    exit(0);
  }
  else
  {
    for(i=0; i<NUM_ROWS; ++i)
    {
      for(j=0; j<NUM_SEATS; ++j)
        fputc('X', fp);
      if(i != NUM_ROWS-1)
        fputc(10, fp);
    }
    fclose(fp);
  }
}

void changeSeat(int row, int seat, char ch)
{
  FILE* fp;

  fp = fopen(SEATS_DATABASE, "r+");
  if (fp)
  {
    fseek(fp, row*(NUM_SEATS+1)+seat, SEEK_SET);
    fputc(ch, fp);
    fclose(fp);
  }
  else
  {
    printf("Can't update the database\n");
  }
}

int main(void)
{
  initDataBase();

  changeSeat(3, 3, 'O');
  changeSeat(0, 1, 'O');

  return 0;
}
  1. #include <stdio.h>
  2. #define SEATS_DATABASE "seats.db"
  3. #define NUM_ROWS    8
  4. #define NUM_SEATS   8
  5. void initDataBase(void)
  6. {
  7.   FILE *fp;
  8.   int i;
  9.   int j;
  10.   fp = fopen(SEATS_DATABASE, "w");
  11.   if(fp == NULL)
  12.   {
  13.     printf("Can't create file");
  14.     exit(0);
  15.   }
  16.   else
  17.   {
  18.     for(i=0; i<NUM_ROWS; ++i)
  19.     {
  20.       for(j=0; j<NUM_SEATS; ++j)
  21.         fputc('X', fp);
  22.       if(i != NUM_ROWS-1)
  23.         fputc(10, fp);
  24.     }
  25.     fclose(fp);
  26.   }
  27. }
  28. void changeSeat(int row, int seat, char ch)
  29. {
  30.   FILE* fp;
  31.   fp = fopen(SEATS_DATABASE, "r+");
  32.   if (fp)
  33.   {
  34.     fseek(fp, row*(NUM_SEATS+1)+seat, SEEK_SET);
  35.     fputc(ch, fp);
  36.     fclose(fp);
  37.   }
  38.   else
  39.   {
  40.     printf("Can't update the database\n");
  41.   }
  42. }
  43. int main(void)
  44. {
  45.   initDataBase();
  46.   changeSeat(3, 3, 'O');
  47.   changeSeat(0, 1, 'O');
  48.   return 0;
  49. }

Publicar Información

  • Total de mensajes en este tema: 3 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 150 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC