PDA

Visualizza la versione completa : [C++] Dati da file bin


program
27-01-2011, 14:52
Ciao a tutti.
DOvrei prendere dei dati da un file .bin e renderli visibili in un file .csv per poterli lavorare con Office o quant'altro.

Non so nulla sul file .bin in ingresso. So solo che
ogni mio dato dovrebbe essere di 4 bytes (float).

Questo il programma che ho scritto.
Il ciclo for scritto esatto?
Grazie per l'aiuto

// reading a complete binary file


#include<cstdio>
#include<fstream>
#include<cstring>
#include<sstream>
#include<iostream>



using namespace std;

ifstream::pos_type size; //variabile numero di dati
char * memblock; // puntatore

int main () {
ifstream file ("20110126_VSub8V6_800mVPulse.bin", ios::in|ios::binary|ios::ate);
if (file.is_open())
{
size = file.tellg(); //Numero di dati = numero ultimo dato
memblock = new char[size]; // matrice lunga quanto il numero dei dati



file.seekg (0, ios::beg); //inizia a guardare dall'inizio
file.read (memblock, size); //leggi tutto il file .bin

ofstream myfile ("Prova.csv");
for(int i=0;i<8192;i=i+4)
{

float*a = (float*)(&memblock[i]);
// cout <<"Indirizzo di a = " << a << "\n";
// cout <<"Contenuto di a = " << *a <<"\n \n";
myfile << *a << "\n";
}

myfile.close();

cout <<"\n";
file.close(); //Chiudi il file


delete[] memblock; //Cancella la memoria provvisoria
}
else cout << "Unable to open file";
return 0;
}

Loading