📄 lxdcmelement.cpp.svn-base
字号:
#include "LXDcmElement.hpp"
#include <string.h>
CLXDcmElement::CLXDcmElement()
{
m_gTag=0;
m_eTag=0;
m_VL=0;
m_data=0;
m_VR=0;
}
CLXDcmElement::CLXDcmElement( lstuint16 gTag,lstuint16 eTag,lstuint32 valueLength,const char* value,CLXDcmVR* vr)
{
CLXDcmElement();
m_VR=vr;
SetTag(gTag,eTag);
SetValue(value,valueLength);
}
CLXDcmElement::~CLXDcmElement()
{
if(m_VR)
{
//delete m_VR;
}
}
inline void CLXDcmElement::SetTag( lstuint16 gTag,lstuint16 eTag )
{
m_gTag=gTag;
m_eTag=eTag;
}
bool CLXDcmElement::Write( FILE *fp )
{
//only for implicate malloc for VL 4bytes ,no VR
fwrite(&m_gTag,2,1,fp);
fwrite(&m_eTag,2,1,fp);
if(this->HasVR())
{
VR tvr=m_VR->GetVR();
if(tvr==EVR_OB||tvr==EVR_OW||tvr==EVR_SQ||tvr==EVR_UN)
{
//
const char* vrTmp=m_VR->GetVRName();
fwrite(vrTmp,sizeof(char),2,fp);
lstuint16 reserved=0x0000;
fwrite(&reserved,2,1,fp);
lstuint32 valueLen=m_VL;
fwrite(&valueLen,sizeof(lstuint32),1,fp);
}
else
{
const char* vrTmp=m_VR->GetVRName();
fwrite(vrTmp,sizeof(char),2,fp);
lstuint16 valueLen=m_VL;
fwrite(&valueLen,sizeof(lstuint16),1,fp);
}
}
else
{
fwrite(&m_VL,4,1,fp);
}
if(m_data&&m_VL!=0)
{
if(m_VL!=fwrite(m_data,1,m_VL,fp))
{
return false;
}
}
return true;
}
void CLXDcmElement::SetValue( const char* value,lstuint32 valueLength )
{
m_VL=valueLength;
//if(m_data)
//{
// delete m_data;
//}
m_data=new char[valueLength];
for(lstuint32 i=0;i<valueLength;i++)
{
m_data[i]=0;
}
memcpy(m_data,value,valueLength);
}
void CLXDcmElement::Destory()
{
if(m_data)
{
delete m_data;
}
if(m_VR)
{
delete m_VR;
}
}
bool CLXDcmElement::operator<( const CLXDcmElement& e ) const
{
lstuint32 leftTag=(m_gTag<<16)|m_eTag;
lstuint32 rightTag=(e.m_gTag<<16)|e.m_eTag;
return leftTag<rightTag;
}
const char* CLXDcmElement::GetVRName()
{
if(m_VR)
{
return m_VR->GetVRName();
}
else
{
return "??";
}
}
CLXDcmVR* CLXDcmElement::GetVR()
{
return m_VR;
}
bool CLXDcmElement::HasVR()
{
//if(m_VR->IsEmpty())
if(!m_VR)
{
return false;
}
else
{
return m_VR->IsSupported();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -