[Dcmlib] [Fwd: Field length and std::string]

Mathieu Malaterre mathieu.malaterre at kitware.com
Thu Nov 4 20:16:10 CET 2004


Dans gdcmValEntry.cxx, ligne 226 on fais:

   fp->write (GetValue().c_str(), (size_t)lgr ); // Elem value

Le probleme c'est que souvent lgr != GetValue().size()
En effet DICOM pad toujours ses chaines de caracteres avec un '\0' , qui 
est automatiquement oublie par la std::string

J'aimerais qd meme faire un sanity check, au cas ou.

Commentaires / suggestions ?

Mathieu
Ps: la solution qui me vient c'est de faire une sous-classe de 
std::string qui gere les \0. Il faudrais faire la difference entre une 
chaine vide et la chaine '\0'...


-------- Original Message --------
Subject: Field length and std::string
Date: Thu, 04 Nov 2004 14:09:21 -0500
From: Mathieu Malaterre <mmalaterNOSP at Mnycap.rr.com>
Newsgroups: comp.protocols.dicom

Hello,

	Before I dig into dcmtk code. Does anyone know if there is a way to use
std::string while still handling string ending with '\0'.

	For instance when you read '1.2.840.10008.5.1.4.1.1.6.1'. This is an
odd length string. So the dicom file adds a '\0'. But in my lib I store
it as a std::string, so it automatically looses it \0.

	Any advice ?

Thanks
Mathieu






More information about the Dcmlib mailing list