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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| void CTestReadHBFDlg::OnFREAD()
{
CString strFunction("OnFREAD" );
for (int i=0; i<10; i++)
{
CString strFileName = "XYZ.raw";
CWaitCursor wait;
FILE *Stream=fopen(strFileName,"rb");
// Lire l'entete
char pszTypeName[45];
int nTypeNameLen=45;
fread(pszTypeName,sizeof(char),nTypeNameLen,Stream);
// Lire la version
unsigned long nVersion;
fread(&nVersion,sizeof(unsigned long),1,Stream);
// Lire les dimensions
unsigned long nLi;
fread(&nLi,sizeof(unsigned long),1,Stream);
unsigned long nCo;
fread(&nCo,sizeof(unsigned long),1,Stream);
// Lire les données
int m_nSize = 3*nLi*nCo;
float* m_pData= new float[m_nSize] ;
MTDebugMessage(strModule, strFunction, "fread Début ");
fread(m_pData,sizeof(float),m_nSize,Stream);
MTDebugMessage(strModule, strFunction, "fread Fin ");
// Fermer et detruire.
fclose(Stream);
ifstream ifs;
ifs.open(strFileName, ios::in | ios::binary);
// Lire l'entete
ifs.read(pszTypeName,sizeof(char)*nTypeNameLen);
// Lire la version
ifs.read((char *)&nVersion,sizeof(unsigned long)*1);
// Lire les dimensions
ifs.read((char *)&nLi,sizeof(unsigned long)*1);
ifs.read((char *)&nCo,sizeof(unsigned long)*1);
// Lire les données
MTDebugMessage(strModule, strFunction, "IOsread Début ");
ifs.read((char *)m_pData,sizeof(float)*m_nSize);
MTDebugMessage(strModule, strFunction, "IOsread Fin ");
// Fermer et detruire.
ifs.close();
strFileName = "XYZ_fwrite.raw";
Stream=fopen(strFileName,"wb");
// Lire l'entete
fwrite(pszTypeName,sizeof(char),nTypeNameLen,Stream);
// Lire la version
fwrite(&nVersion,sizeof(unsigned long),1,Stream);
// Lire les dimensions
fwrite(&nLi,sizeof(unsigned long),1,Stream);
fwrite(&nCo,sizeof(unsigned long),1,Stream);
// Lire les données
MTDebugMessage(strModule, strFunction, "fsave Début ");
fwrite(m_pData,sizeof(float),m_nSize,Stream);
MTDebugMessage(strModule, strFunction, "fsave Fin ");
// Fermer et detruire.
fclose(Stream);
strFileName = "XYZ_write.raw";
int fh;
int nw;
fh=_open(strFileName,_O_WRONLY | _O_CREAT, _S_IREAD | _S_IWRITE );
// Lire l'entete
nw = _write(fh, pszTypeName,sizeof(char)*nTypeNameLen);
// Lire la version
nw = _write(fh, &nVersion,sizeof(unsigned long)*1);
// Lire les dimensions
nw = _write(fh, &nLi,sizeof(unsigned long)*1);
nw = _write(fh, &nCo,sizeof(unsigned long)*1);
// Lire les données
MTDebugMessage(strModule, strFunction, "_write Début ");
nw = _write(fh, m_pData,sizeof(float)*m_nSize);
MTDebugMessage(strModule, strFunction, "_write Fin ");
// Fermer et detruire.
_close(fh);
strFileName = "XYZ_IO.raw";
ofstream ofs;
ofs.open(strFileName, ios::out | ios::binary);
// Lire l'entete
ofs.write(pszTypeName,sizeof(char)*nTypeNameLen);
// Lire la version
ofs.write((char *)&nVersion,sizeof(unsigned long)*1);
// Lire les dimensions
ofs.write((char *)&nLi,sizeof(unsigned long)*1);
ofs.write((char *)&nCo,sizeof(unsigned long)*1);
// Lire les données
MTDebugMessage(strModule, strFunction, "IOswrite Début ");
ofs.write((char *)m_pData,sizeof(float)*m_nSize);
MTDebugMessage(strModule, strFunction, "IOswrite Fin ");
// Fermer et detruire.
ofs.close();
delete[] m_pData;
}
} |
Partager