begin process at 2012 05 27 16:23:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FONCTION DE SAUVEGARDE DE TABLEAU ET DE LECTURE DE SAUVEGARDE EN C

FONCTION DE SAUVEGARDE DE TABLEAU ET DE LECTURE DE SAUVEGARDE EN C


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :07/05/2004 Vu / téléchargé :6 311 / 313

Auteur : VonCarstein

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Ce code peut etre utilisé dans un programme pour sauvegarder puis lire des tableaux ou des données à partir d'un fichier texte, il dispose d'une fonction de sauvegarde, une fonction de lecture, une fonction d'affichage et une fonction de remplissage aléatoire des tableaux. La sauvegarde se fait dans le fichier svg.txt.

Source

  • #include <stdio.h>
  • #include <stdlib.h>
  • #define N 20
  • /* On declare les deux tableaux global */
  • int pb[N][N];
  • int tir[N][N];
  • /* On remplit les deux tableaux aléatoirement */
  • int init()
  • {
  • int i,j;
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<N;j++)
  • {
  • pb[i][j]=rand()%10;
  • tir[i][j]=rand()%10;
  • }
  • }
  • }
  • /* On Affiche les deux tableaux */
  • int affichage()
  • {
  • int i,j;
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<N;j++)
  • {
  • printf("%2d",pb[i][j]);
  • }
  • printf("\n");
  • }
  • printf("\n");
  • printf("\n");
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<N;j++)
  • {
  • printf("%2d",tir[i][j]);
  • }
  • printf("\n");
  • }
  • }
  • /* On charge les deux tableaux l'un apres l'autre */
  • int load()
  • {
  • /* Pointeur */
  • FILE * open;
  • int i,j,n;
  • /* Pointeur ouvre le fichier en mode lecture */
  • open = fopen ("svg.txt", "r");
  • for (i=0;i<20;i++)
  • {
  • for (j=0;j<20;j++)
  • {
  • /* On recupere les caracteres un à un */
  • n = fgetc(open);
  • pb[i][j] = n;
  • }
  • }
  • for (i=0;i<20;i++)
  • {
  • for (j=0;j<20;j++)
  • {
  • /* meme chose pour le second tableau */
  • n = fgetc(open);
  • tir[i][j] = n;
  • }
  • }
  • }
  • int save()
  • {
  • int i,j,n;
  • /* Deux pointeurs sont necessaires */
  • FILE * write1;
  • FILE * write2;
  • /* On ecrase le fichier précédent grace au mode "w" */
  • fopen ("svg.txt", "w");
  • /* On positionne le pointeur à la fin du fichier grace au mode "a" */
  • write1 = fopen ("svg.txt", "a");
  • for (i=0;i<20;i++)
  • {
  • for (j=0;j<20;j++)
  • {
  • /* On recupere un à un les caracteres */
  • n = pb[i][j];
  • fputc(n,write1);
  • }
  • }
  • /* On ferme le fichier */
  • fclose (write1);
  • /* Meme operation pour le second tableau */
  • write2 = fopen ("svg.txt", "a");
  • for (i=0;i<20;i++)
  • {
  • for (j=0;j<20;j++)
  • {
  • n = tir[i][j];
  • fputc(n,write2);
  • }
  • }
  • fclose (write2);
  • /* Cette operation pourrait etre réalisée sur autant de données differentes
  • que possibles si elles sont les unes à la suite des autres, certains
  • compilateurs autorisent l'utilisation d'un pointeur unique */
  • }
  • main ()
  • {
  • int i,j,n;
  • /* initialisation de la fonction rand */
  • srand(time(NULL));
  • /* Menu de choix */
  • while (1)
  • {
  • printf("Voulez vous charger l'ancien tableau (1) ou en ecrire un nouveau puis le sauvegarder (2)");
  • scanf("%d",&n);
  • switch (n)
  • {
  • case 1: load(); affichage(); break;
  • case 2: init(); affichage(); save(); break;
  • }
  • getch();
  • }
  • }
#include <stdio.h>
#include <stdlib.h>
#define N 20

/* On declare les deux tableaux global */
int pb[N][N];
int tir[N][N];

/* On remplit les deux tableaux aléatoirement */
int init()
{
int i,j;

for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
pb[i][j]=rand()%10;
tir[i][j]=rand()%10;
}
}

}

/* On Affiche les deux tableaux */ 
int affichage()
{
int i,j;

for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{

printf("%2d",pb[i][j]);
}
printf("\n");
}

printf("\n");
printf("\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{

printf("%2d",tir[i][j]);
}
printf("\n");
}


}
/* On charge les deux tableaux l'un apres l'autre */
int load()
{
/* Pointeur  */
FILE * open;
int i,j,n;
/* Pointeur ouvre le fichier en mode lecture */
open = fopen ("svg.txt", "r");
for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{
/* On recupere les caracteres un à un */
n = fgetc(open);

pb[i][j] = n;

}
}

for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{
/* meme chose pour le second tableau */
n = fgetc(open);

tir[i][j] = n;

}
}



}


int save()

{
int i,j,n;
/* Deux pointeurs sont necessaires */
FILE * write1;
FILE * write2;


/* On ecrase le fichier précédent grace au mode "w" */
fopen ("svg.txt", "w");

/* On positionne le pointeur à la fin du fichier grace au mode "a" */
write1 = fopen ("svg.txt", "a");

for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{
/* On recupere un à un les caracteres */
n = pb[i][j];
fputc(n,write1);
}
}

/* On ferme le fichier */
fclose (write1);
/* Meme operation pour le second tableau */
write2 = fopen ("svg.txt", "a");
for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{

n = tir[i][j];
fputc(n,write2);


}
}
fclose (write2);
/* Cette operation pourrait etre réalisée sur autant de données differentes 
que possibles si elles sont les unes à la suite des autres, certains 
compilateurs autorisent l'utilisation d'un pointeur unique */
}

main ()
{
int i,j,n;
/* initialisation de la fonction rand */
srand(time(NULL));
/* Menu de choix */
while (1)
{
printf("Voulez vous charger l'ancien tableau (1) ou en ecrire un nouveau  puis le sauvegarder (2)");
scanf("%d",&n);
switch (n)
{
case 1: load(); affichage(); break;
case 2: init(); affichage(); save(); break;

}
getch();
}
}

 Conclusion

Ce programme n'est pas utile en soi mais peut servir pour sauvegarder un jeu, au hasard.. une bataille navale...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip LE COMPTE EST BON

 Sources de la même categorie

Source avec Zip KISIEL CD INFO DRIVE par kisiel0147852
Source avec une capture SUPPRESSION DES REDONDANCES DE FICHIERS par cyberntique
Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales