Desde ya muchas gracias por su atención. Estoy empezando en C++, ya que nunca había programado en este lenguaje.
cree una clase, que la resumo, pero es algo así:
Código C++:
Ver original
#ifndef INIDICOM_H #define INIDICOM_H using namespace std; #include <string> using std::string; #include <cstring> class iniDicom { public: iniDicom(); virtual ~iniDicom(); char* getPreamble(); char* getPrefix(); char* getGroup_number(); bool setString(char* value_var); bool isDicom(); int countLength(); private: char* preamble[128]; char* prefix[4]; char* group_number[2]; void asingValues(char* value_char, int iniNumber, char* value_var); }; #endif // INIDICOM_H
Y tengo la implementación:
Código C++:
Ver original
iniDicom::iniDicom(){ } iniDicom::~iniDicom(){ } /*getPreamble() : string */ char* iniDicom::getPreamble(){ return *preamble; } /*getPrefix() : string */ char* iniDicom::getPrefix(){ return *prefix; } char* iniDicom::getGroup_number(){ return *group_number; } bool iniDicom::setString(char* value_var){ asingValues(*preamble, 0, value_var); return true; } void iniDicom::asingValues(char* value_char, int iniNumber, char* value_var){ for(i=0;i<largo;i++){ value_char[i] = value_var[iniNumber+i] ; } } int iniDicom::countLength(){ //preamble es igual a 128---> se reemplaza. int tmp = 128 + sizeof(*prefix) + sizeof(*group_number)+ sizeof(*element_number); tmp += sizeof(*value_representation) + sizeof(*value_length) + sizeof(*value); return tmp; } bool iniDicom::isDicom(){ if(((string)*prefix)=="DICM"){ return true; }else{ return false; } }
el problema es que cuando corro me sale "Segmentation Fault". La verdad es que no se como asignar, mi idea era, obtener de un archivo una cantidad de caracteres, meterlos en un char y después dividirlo en cada uno de los atributos. Cual creen que es la mejor forma de hacerlo?. Muchas Gracias y Saludos.