Lire un fichier .dat et faire des opérations.
SOS
-
SOS -
SOS -
Bonjour à tous,
Voila mon probléme est celui d'un débutant...
Je voudrais lire 2 fichier .dat de valeurs sous forme colones.
exemple :
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
Puis effectuer une opération entre les deux fichier(exemple fichier1+fichier2=résultat) et finalement créer résultat.dat.
L'idée que j'avais était de lire les .dat les enregistrer dans 2 tableaux colonnes de la dimension du fichier(mm dim) effectuer les opérations (+,-,/,moyenne,....) puis loader le résultats dans un autre fichier.
j'ai fait un ptit baratin je compte sur vous les amis pour m'aider :
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<conio.h>
#define N 161040
/* On declare les deux tableaux global */
double pb[N];
double tir[N];
/* On remplit les deux tableaux aléatoirement */
int init()
{
int i,j;
for (i=0;i<N;i++)
{
pb[i]=1.0 ;//rand()%10;
tir[i]=1.0 ;//rand()%10;
}
}
/* On Affiche les deux tableaux */
int affichage()
{
int i,j;
for (i=0;i<N;i++)
{
printf("%2d",pb[i]);
}
printf("\n");
printf("\n");
for (i=0;i<N;i++)
{
printf("%2d",tir[i]);
}
}
//-------------------------------
double load()
{
/* Pointeur */
FILE * open;
int i,j;
double n;
/* Pointeur ouvre le fichier en mode lecture */
open = fopen ("None.dat", "rb+");
for (i=0;i<N;i++)
{
/* On recupere les caracteres un à un */
n = getw(open);
printf("hello = ",n);
pb[i] = n;
}
for (i=0;i<N;i++)
{
/* meme chose pour le second tableau */
n = fgetc(open);
tir[i] = 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 ("None.dat", "w");
/* On positionne le pointeur à la fin du fichier grace au mode "a" */
//write1 = fopen ("None.dat", "a");
//for (i=0;i<N;i++)
//{
/* On recupere un à un les caracteres */
//n = pb[i];
//fputc(n,write1);
//}
/* On ferme le fichier */
//fclose (write1);
/* Meme operation pour le second tableau */
//write2 = fopen ("None.dat", "a");
//for (i=0;i<N;i++)
//{
//n = tir[i];
//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,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: init(); affichage(); load(); break;
case 2: init(); affichage(); break; //save(); break;
}
//getch();
}
}
a bientot
Voila mon probléme est celui d'un débutant...
Je voudrais lire 2 fichier .dat de valeurs sous forme colones.
exemple :
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
-0.12345679E+39
Puis effectuer une opération entre les deux fichier(exemple fichier1+fichier2=résultat) et finalement créer résultat.dat.
L'idée que j'avais était de lire les .dat les enregistrer dans 2 tableaux colonnes de la dimension du fichier(mm dim) effectuer les opérations (+,-,/,moyenne,....) puis loader le résultats dans un autre fichier.
j'ai fait un ptit baratin je compte sur vous les amis pour m'aider :
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<conio.h>
#define N 161040
/* On declare les deux tableaux global */
double pb[N];
double tir[N];
/* On remplit les deux tableaux aléatoirement */
int init()
{
int i,j;
for (i=0;i<N;i++)
{
pb[i]=1.0 ;//rand()%10;
tir[i]=1.0 ;//rand()%10;
}
}
/* On Affiche les deux tableaux */
int affichage()
{
int i,j;
for (i=0;i<N;i++)
{
printf("%2d",pb[i]);
}
printf("\n");
printf("\n");
for (i=0;i<N;i++)
{
printf("%2d",tir[i]);
}
}
//-------------------------------
double load()
{
/* Pointeur */
FILE * open;
int i,j;
double n;
/* Pointeur ouvre le fichier en mode lecture */
open = fopen ("None.dat", "rb+");
for (i=0;i<N;i++)
{
/* On recupere les caracteres un à un */
n = getw(open);
printf("hello = ",n);
pb[i] = n;
}
for (i=0;i<N;i++)
{
/* meme chose pour le second tableau */
n = fgetc(open);
tir[i] = 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 ("None.dat", "w");
/* On positionne le pointeur à la fin du fichier grace au mode "a" */
//write1 = fopen ("None.dat", "a");
//for (i=0;i<N;i++)
//{
/* On recupere un à un les caracteres */
//n = pb[i];
//fputc(n,write1);
//}
/* On ferme le fichier */
//fclose (write1);
/* Meme operation pour le second tableau */
//write2 = fopen ("None.dat", "a");
//for (i=0;i<N;i++)
//{
//n = tir[i];
//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,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: init(); affichage(); load(); break;
case 2: init(); affichage(); break; //save(); break;
}
//getch();
}
}
a bientot
A voir également:
- Lire un fichier .dat et faire des opérations.
- Fichier .dat - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide