1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include <fstream>
#include <stdio.h>
#include <iostream>
using namespace std;
#define NbAntMax 2 // Nombre de signaux
#define NbChTimeMax 10001 // Nombre de canaux temporel max absolu
#define NbChTimeAA 1000 // Nombre max AA (normalement il y a des signaux BB, avec une autre longueur)
#define NbTypesSignaux 5 // Temps, NS, EW, vertical, autre parametre
// Tableau destines a contenir les signaux
float signalsAA[NbAntMax][NbTypesSignaux][NbChTimeMax];
// Declaration des fonction de lecture des fichiers
void Read1FileAA(char* AAdir,char* AAfile,float signals[NbAntMax][NbTypesSignaux][NbChTimeMax],int ant);
void ReadAllFilesAA(char* AAdir,char* AAfile[NbAntMax],float signals[NbAntMax][NbTypesSignaux][NbChTimeMax]);
// Chemin des fichiers de donnees AA
char* dirAA="./dataAA/";
char* fileAA[NbAntMax]={"file1","file2"};
int main()
{
ReadAllFilesAA(dirAA,fileAA,signalsAA);
printf("Last value: %3f\n",signalsAA[1][3][999]);
return 0;
}
// ReadAllFileAA: Lit les trois composantes du champ de tous les fichiers AA
void ReadAllFilesAA(char* AAdir,char* AAfile[NbAntMax],float signals[NbAntMax][NbTypesSignaux][NbChTimeMax])
{
for(int i=0;i<NbAntMax;i++) {
Read1FileAA(AAdir,AAfile[i],signals,i);
}
}
// Read1FileAA: Lit les trois composantes du champ d un fichier AA a une position
void Read1FileAA(char* AAdir,char* AAfile,float signals[NbAntMax][NbTypesSignaux][NbChTimeMax],int ant)
{
int ii=ant;
char AAdirfile[100];
sprintf(AAdirfile,"%s%s.dat",AAdir,AAfile);
FILE *fAnt;
if((fAnt = fopen(AAdirfile,"r"))==NULL) {printf("Cant open AA file: %s\n",AAdirfile);}
for(int jj=0;jj<2012;jj++) {
fscanf(fAnt,"%f",&signals[ii][0][jj]); // Time
fscanf(fAnt,"%f",&signals[ii][1][jj]); // ns
fscanf(fAnt,"%f",&signals[ii][2][jj]); // ew
fscanf(fAnt,"%f",&signals[ii][3][jj]); // vert
signals[ii][4][jj]=999; // nothing, utilise avec les signaux BB...
}
} |
Partager