From: regrain Date: Tue, 13 Jan 2004 11:13:07 +0000 (+0000) Subject: * src/gdcmDict.cxx, gdcmElValSet.cxx : bug fix under windows for prints. X-Git-Tag: Version0.3.1~12 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=fdef18c217469cc507704db6d686ce195e82e4ce;p=gdcm.git * src/gdcmDict.cxx, gdcmElValSet.cxx : bug fix under windows for prints. It's lied to the stl compilation by MSVC (windows, always windows...) -- BeNours --- diff --git a/ChangeLog b/ChangeLog index d0d21731..ca945d84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2004-01-13 Benoit Regrain * gdcmPython/testSuite.py : test the readable flag of file for tests + * src/gdcmDict.cxx, gdcmElValSet.cxx : bug fix under windows for prints. + It's lied to the stl compilation by MSVC (windows, always windows...) 2004-01-12 Benoit Regrain * src/*.h : add comments diff --git a/gdcm.dsw b/gdcm.dsw index c5ab6945..fa57c94e 100644 --- a/gdcm.dsw +++ b/gdcm.dsw @@ -1,167 +1,167 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "_vtkGdcm"=.\GDCMPYTHON\WIN32\_vtkGdcm.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name libgdcmljpeg - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg8 - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg12 - End Project Dependency -}}} - -############################################################################### - -Project: "gdcmdll"=.\src\win32\gdcmdll.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name libgdcmljpeg - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg8 - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg12 - End Project Dependency -}}} - -############################################################################### - -Project: "gdcmpyembedded"=.\gdcmPython\win32\gdcmpyembedded.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name libgdcmljpeg - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg8 - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg12 - End Project Dependency -}}} - -############################################################################### - -Project: "gdcmtest"=.\TEST\WIN32\gdcmtest\gdcmtest.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name gdcmdll - End Project Dependency -}}} - -############################################################################### - -Project: "libgdcmijpeg12"=.\SRC\WIN32\libgdcmijpeg12.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "libgdcmijpeg8"=.\SRC\WIN32\libgdcmijpeg8.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "libgdcmljpeg"=.\SRC\WIN32\libgdcmljpeg.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "vtkGdcmTest"=.\VTK\WIN32\vtkGdcmTest.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name vtkgdcm - End Project Dependency -}}} - -############################################################################### - -Project: "vtkgdcm"=.\VTK\WIN32\vtkgdcm.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name libgdcmljpeg - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg8 - End Project Dependency - Begin Project Dependency - Project_Dep_Name libgdcmijpeg12 - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "_vtkGdcm"=.\GDCMPYTHON\WIN32\_vtkGdcm.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libgdcmljpeg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg8 + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg12 + End Project Dependency +}}} + +############################################################################### + +Project: "gdcmTest"=.\TEST\WIN32\gdcmTest.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name gdcmdll + End Project Dependency +}}} + +############################################################################### + +Project: "gdcmdll"=.\src\win32\gdcmdll.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libgdcmljpeg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg8 + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg12 + End Project Dependency +}}} + +############################################################################### + +Project: "gdcmpyembedded"=.\gdcmPython\win32\gdcmpyembedded.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libgdcmljpeg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg8 + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg12 + End Project Dependency +}}} + +############################################################################### + +Project: "libgdcmijpeg12"=.\SRC\WIN32\libgdcmijpeg12.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "libgdcmijpeg8"=.\SRC\WIN32\libgdcmijpeg8.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "libgdcmljpeg"=.\SRC\WIN32\libgdcmljpeg.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "vtkGdcmTest"=.\VTK\WIN32\vtkGdcmTest.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name vtkgdcm + End Project Dependency +}}} + +############################################################################### + +Project: "vtkgdcm"=.\VTK\WIN32\vtkgdcm.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libgdcmljpeg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg8 + End Project Dependency + Begin Project Dependency + Project_Dep_Name libgdcmijpeg12 + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/gdcmDict.cxx b/src/gdcmDict.cxx index 25de9bba..bba44f79 100644 --- a/src/gdcmDict.cxx +++ b/src/gdcmDict.cxx @@ -3,6 +3,12 @@ #include "gdcmDict.h" #include "gdcmUtil.h" #include +#ifdef GDCM_NO_ANSI_STRING_STREAM +# include +# define ostringstream ostrstream +# else +# include +#endif /** * \ingroup gdcmDict @@ -73,14 +79,17 @@ void gdcmDict::Print(std::ostream& os) { * @param os The output stream to be written to. */ void gdcmDict::PrintByKey(std::ostream& os) { + std::ostringstream s; + for (TagKeyHT::iterator tag = KeyHt.begin(); tag != KeyHt.end(); ++tag){ - os << "Tag : "; - os << "(" << std::hex << tag->second->GetGroup() << ','; - os << std::hex << tag->second->GetElement() << ") = " << std::dec; - os << tag->second->GetVR() << ", "; - os << tag->second->GetFourth() << ", "; - os << tag->second->GetName() << "." << std::endl; + s << "Tag : "; + s << "(" << std::hex << tag->second->GetGroup() << ','; + s << std::hex << tag->second->GetElement() << ") = " << std::dec; + s << tag->second->GetVR() << ", "; + s << tag->second->GetFourth() << ", "; + s << tag->second->GetName() << "." << std::endl; } + os << s.str(); } /** @@ -90,14 +99,17 @@ void gdcmDict::PrintByKey(std::ostream& os) { * @param os The output stream to be written to. */ void gdcmDict::PrintByName(std::ostream& os) { + std::ostringstream s; + for (TagNameHT::iterator tag = NameHt.begin(); tag != NameHt.end(); ++tag){ - os << "Tag : "; - os << tag->second->GetName() << ","; - os << tag->second->GetVR() << ", "; - os << tag->second->GetFourth() << ", "; - os << "(" << std::hex << tag->second->GetGroup() << ','; - os << std::hex << tag->second->GetElement() << ") = " << std::dec << std::endl; + s << "Tag : "; + s << tag->second->GetName() << ","; + s << tag->second->GetVR() << ", "; + s << tag->second->GetFourth() << ", "; + s << "(" << std::hex << tag->second->GetGroup() << ','; + s << std::hex << tag->second->GetElement() << ") = " << std::dec << std::endl; } + os << s.str(); } /** diff --git a/src/gdcmElValSet.cxx b/src/gdcmElValSet.cxx index 621134be..429888d1 100644 --- a/src/gdcmElValSet.cxx +++ b/src/gdcmElValSet.cxx @@ -16,7 +16,9 @@ gdcmElValSet::~gdcmElValSet() { gdcmElValue* EntryToDelete = tag->second; if ( EntryToDelete ) delete EntryToDelete; + tag->second=NULL; } + tagHt.clear(); // Since Add() adds symetrical in both tagHt and NameHt we can // assume all the pointed gdcmElValues are already cleaned-up when @@ -64,6 +66,7 @@ void gdcmElValSet::Print(std::ostream & os) { TSKey v; std::string d2; gdcmTS * ts = gdcmGlobal::GetTS(); + std::ostringstream s; for (TagElValueHT::iterator tag = tagHt.begin(); tag != tagHt.end(); @@ -73,27 +76,28 @@ void gdcmElValSet::Print(std::ostream & os) { v = tag->second->GetValue(); o = tag->second->GetOffset(); d2 = _CreateCleanString(v); // replace non printable characters by '.' - - os << tag->first << ": "; - os << " lgr : " << tag->second->GetLength(); - os << ", Offset : " << o; - os << " x(" << std::hex << o << std::dec << ") "; - os << "\t[" << tag->second->GetVR() << "]"; - os << "\t[" << tag->second->GetName() << "]"; - os << "\t[" << d2 << "]"; - + + s << tag->first << ": "; + s << " lgr : " <second->GetLength(); + s << ",\t Offset : " << o; + s << " x(" << std::hex << o << std::dec << ") "; + s << "\t[" << tag->second->GetVR() << "]"; + s << "\t[" << tag->second->GetName() << "]"; + s << "\t[" << d2 << "]"; + // Display the UID value (instead of displaying the rough code) if (g == 0x0002) { // Some more to be displayed ? if ( (e == 0x0010) || (e == 0x0002) ) - os << " ==>\t[" << ts->GetValue(v) << "]"; + s << " ==>\t[" << ts->GetValue(v) << "]"; } else { if (g == 0x0008) { if ( (e == 0x0016) || (e == 0x1150) ) - os << " ==>\t[" << ts->GetValue(v) << "]"; + s << " ==>\t[" << ts->GetValue(v) << "]"; } } - os << std::endl; + s << std::endl; } + guint32 lgth; char greltag[10]; //group element tag @@ -107,30 +111,31 @@ void gdcmElValSet::Print(std::ostream & os) { o = (*i)->GetOffset(); sprintf(greltag,"%04x|%04x",g,e); d2 = _CreateCleanString(v); // replace non printable characters by '.' - os << greltag << ": lgth : "; + s << greltag << ": lgth : "; lgth = (*i)->GetReadLength(); if ( lgth == 0xffffffff) - os << std::hex << lgth << std::dec ; + s << std::hex << lgth << std::dec ; else - os << lgth; - os << ", Offset : " << o; - os << " x(" << std::hex << o << std::dec << ") "; - os << "\t[" << (*i)->GetVR() << "]"; - os << "\t[" << (*i)->GetName() << "]"; - os << "\t[" << d2 << "]"; + s << lgth; + s << ",\t Offset : " << o; + s << " x(" << std::hex << o << std::dec << ") "; + s << "\t[" << (*i)->GetVR() << "]"; + s << "\t[" << (*i)->GetName() << "]"; + s << "\t[" << d2 << "]"; // Display the UID value (instead of displaying the rough code) if (g == 0x0002) { // Any more to be displayed ? if ( (e == 0x0010) || (e == 0x0002) ) - os << " ==>\t[" << ts->GetValue(v) << "]"; + s << " ==>\t[" << ts->GetValue(v) << "]"; } else { if (g == 0x0008) { if ( (e == 0x0016) || (e == 0x1150) ) - os << " ==>\t[" << ts->GetValue(v) << "]"; + s << " ==>\t[" << ts->GetValue(v) << "]"; } } - os << std::endl; - } + s << std::endl; + } + os<