Program: gdcm
Module: $RCSfile: gdcmValEntry.cxx,v $
Language: C++
- Date: $Date: 2005/02/02 16:18:49 $
- Version: $Revision: 1.56 $
+ Date: $Date: 2005/07/05 14:55:24 $
+ Version: $Revision: 1.63 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmGlobal.h"
#include "gdcmUtil.h"
#include "gdcmDebug.h"
+#include "gdcmDocument.h"
#include <fstream>
+#include <ctype.h> // for isdigit
+#include <stdlib.h> // for atoi
namespace gdcm
{
//-----------------------------------------------------------------------------
-#define MAX_SIZE_PRINT_ELEMENT_VALUE 128
-
+#define MAX_SIZE_PRINT_ELEMENT_VALUE 0x7fffffff
+uint32_t ValEntry::MaxSizePrintEntry = MAX_SIZE_PRINT_ELEMENT_VALUE;
//-----------------------------------------------------------------------------
// Constructor / Destructor
/**
}
const VRKey &vr = GetVR();
- unsigned int lgr = GetLength();
+ unsigned int lgth = GetLength();
if (vr == "US" || vr == "SS")
{
// some 'Short integer' fields may be multivaluated
return;
}
- gdcmAssertMacro( lgr == GetValue().length() );
+ gdcmAssertMacro( lgth == GetValue().length() );
binary_write(*fp, GetValue());
}
+
+/**
+ * \brief Header Elements too long will not be printed
+ * @param newSize new size
+ */
+void ValEntry::SetMaxSizePrintEntry(long newSize)
+{
+ if ( newSize < 0 )
+ {
+ return;
+ }
+ if ((uint32_t)newSize >= (uint32_t)0xffffffff )
+ {
+ ValEntry::MaxSizePrintEntry = 0xffffffff;
+ return;
+ }
+ ValEntry::MaxSizePrintEntry = newSize;
+}
+
+
/**
* \brief Sets the std::string representable' value of a ValEntry
* @param val value to set
if ( l != 0) // To avoid to be cheated by 'zero length' integers
{
const VRKey &vr = GetVR();
- if( vr == "US" || vr == "SS" )
+ if ( vr == "US" || vr == "SS" )
{
// for multivaluated items
l = (Util::CountSubstring(val, "\\") + 1) * 2;
ContentEntry::SetValue(val);
}
- else if( vr == "UL" || vr == "SL" )
+ else if ( vr == "UL" || vr == "SL" )
{
// for multivaluated items
l = (Util::CountSubstring(val, "\\") + 1) * 4;;
TS *ts = Global::GetTS();
- TSAtr v = GetValue(); // not applicable for SQ ...
+ TSAtr v = GetValue();
d2 = Util::CreateCleanString(v); // replace non printable characters by '.'
- if( GetLength() <= MAX_SIZE_PRINT_ELEMENT_VALUE
+ if ( (long)GetLength() <= ValEntry::GetMaxSizePrintEntry()
|| PrintLevel >= 3
|| d2.find(GDCM_NOTLOADED) < d2.length() )
{
{
if (v == "4294967295") // to avoid troubles in convertion
{
- st = Util::Format(" x(ffffffff)");
+ st = "ffffffff";
}
else
{
}
else
{
- st = Util::Format(" ");
+ st = " ";
}
}
s << st;