[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