]> Creatis software - gdcm.git/commitdiff
* FIX: PATH to dictionary was wrong (missing /)
authormalaterre <malaterre>
Fri, 10 Oct 2003 15:36:24 +0000 (15:36 +0000)
committermalaterre <malaterre>
Fri, 10 Oct 2003 15:36:24 +0000 (15:36 +0000)
* ENH: OpenFile, return true if the file looks like an ACR or DICOM file

src/CMakeLists.txt
src/gdcmHeader.cxx

index a2afadc264a9890819548f1d7c570fa758f7f301..2fcf1d4b44740910ed1df259e76b8d677eedabcd 100644 (file)
@@ -38,7 +38,7 @@ SET(libgdcm_la_SOURCES
 \r
 SET_SOURCE_FILES_PROPERTIES(${libgdcm_la_SOURCES}\r
   PROPERTIES\r
-  COMPILE_FLAGS "-D__STDC_LIMIT_MACROS -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\""\r
+  COMPILE_FLAGS "-D__STDC_LIMIT_MACROS  -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\""\r
 )\r
 \r
 ADD_LIBRARY(gdcm ${libgdcm_la_SOURCES} )\r
index 0a222f0facb99d3f884a92ae474a70c01da56c8c..e12497c9741c08dd209edb533afdf63ff6aa86b9 100644 (file)
@@ -1,4 +1,4 @@
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.97 2003/10/09 14:58:28 malaterre Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.98 2003/10/10 15:36:24 malaterre Exp $
 
 #include "gdcmHeader.h"
 
@@ -44,6 +44,7 @@ gdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error) {
    Initialise();
    if ( !OpenFile(exception_on_error))
       return;
+
    ParseHeader();
    LoadElements();
    CloseFile();
@@ -72,9 +73,25 @@ gdcmHeader::gdcmHeader(bool exception_on_error) {
     if(!fp)
       throw gdcmFileError("gdcmHeader::gdcmHeader(const char *, bool)");
   }
+//  char *testEntete = new char[204];
+  guint16 zero;
+  fread(&zero,  (size_t)2, (size_t)1, fp);
   if ( fp )
-     return true;
-  dbg.Verbose(0, "gdcmHeader::gdcmHeader cannot open file", filename.c_str());
+  {
+    //ACR
+    if( zero == 0x0008 || zero == 0x0800 )
+       return true;
+    //DICOM
+    fseek(fp, 126L, SEEK_CUR);
+    char dicm[4];
+    fread(dicm,  (size_t)4, (size_t)1, fp);
+    if( strncmp(dicm, "DICM", 4) == 0 )
+       return true;
+    dbg.Verbose(0, "gdcmHeader::gdcmHeader not DICOM/ACR", filename.c_str());
+  }
+  else
+    dbg.Verbose(0, "gdcmHeader::gdcmHeader cannot open file", filename.c_str());
+
   return false;
 }