Hi Yury, Methods like getInMemDataSize(), getStorageSize(), etc. were what I meant. I'll keep an eye out for your message with an excerpt of the data file.
Thanks, Binh-Minh ________________________________ From: Hdf-forum <[email protected]> on behalf of Yury Girshovich <[email protected]> Sent: Wednesday, July 24, 2013 3:34 PM To: HDF Users Discussion List Subject: Re: [Hdf-forum] Reading enum bool attribute Hi Binh-Minh, Thank you very much. I need to ask the owner permission first for sharing the file. Perhaps they can create a very small file just to display the problem. Let me try to separate the code meanwhile, which may take a bit. I'll email it to you with the data asap. I did not use an HDF5 method to find the attribute data type. Are there any? I know the data type from the HDF5 viewer. Here is the relevant portion of my code: The disassembly is attached. . //is_hollow is enum with members {false, true} and value size 1 //bool h, h1, h2; size_t sz1 = attr.getInMemDataSize(); //=1 size_t sz2 = attr.getStorageSize(); //=1 printf("sz1 %d; sz2 %d, szbool %d\n", sz1, sz2, sizeof(bool)); //sz1 1, sz2 1, szbool 1 //the sizes coincide, but each one of those calls crashes. //int i1 = 0; //attr.read(PredType::NATIVE_INT, &i1); //printf("i1 = %d\n", i1); char c1 = 0; attr.read(PredType::NATIVE_CHAR, &c1); // attr.read(PredType::NATIVE_B8, &BB); // attr.read(boolenumtype, &BB); // attr.read(PredType::NATIVE_B8, &h); // attr.read(PredType::NATIVE_UINT8, &h1); // attr.read(PredType::NATIVE_UCHAR, &h2); // printf("is_hollow %d %d %d\n", h, h1, h2); } The error message is: No source available for "raise() at 0x3d66835ba5" The code crashed with all the versions of attribure datatypes. Thanks again, Yury On Wed, Jul 24, 2013 at 3:02 PM, Binh-Minh Ribler <[email protected]<mailto:[email protected]>> wrote: Hi Yury, Is there any chance I can have a copy of the file and that part of your code, from opening the file, perhaps? I want to repeat the exact steps. If not, please send me the errors. Binh-Minh ________________________________ From: Hdf-forum <[email protected]<mailto:[email protected]>> on behalf of Yury Girshovich <[email protected]<mailto:[email protected]>> Sent: Wednesday, July 24, 2013 2:35 PM To: HDF Users Discussion List Subject: Re: [Hdf-forum] Reading enum bool attribute Scott, I agree about the enum size. It was the returned value of the call to attr.getInMemDataSize(). Sorry for the misinformation. The call to: int i; attr.read(PredType::NATIVE_INT, &i) causes a crash. That is not surprising because of the size discrepancy. But I also tried to use all kinds of 8bit creatures, like char, uchar, bool, replacing NATIVE_INT by NATIVE_CHAR, etc., but they all ended up with a crash. Thanks, Yury On Wed, Jul 24, 2013 at 1:57 PM, Mitchell, Scott - IS <[email protected]<mailto:[email protected]>> wrote: I don’t think enums are stored as 1byte. You can check with H5T.getsize. What happens if you try your read with attr_type as a NATIVE_INT and i as an int? Then cast it to bb. Scott From: Hdf-forum [mailto:[email protected]<mailto:[email protected]>] On Behalf Of Yury Girshovich Sent: Wednesday, July 24, 2013 1:04 PM To: [email protected]<mailto:[email protected]> Subject: [Hdf-forum] Reading enum bool attribute I am trying to read an attribute defined as typedef enum {bbo=false, bb1=true} bb; as bb i; attr.read(attr_type, &i); The size of the attribute value is 1 byte. For attr_type I tried all kinds of 8 bit predicate types (as one advice suggested use int, and then interpret your data), bur no matter what I do the code crashes. The value is inserted in a different code using Python, so I can get no help from there. How should I define the predicate type then? Thanks ________________________________ This e-mail and any files transmitted with it may be proprietary and are intended solely for the use of the individual or entity to whom they are addressed. If you have received this e-mail in error please notify the sender. Please note that any views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of Exelis Inc. The recipient should check this e-mail and any attachments for the presence of viruses. Exelis Inc. accepts no liability for any damage caused by any virus transmitted by this e-mail. _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected]<mailto:[email protected]> http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected]<mailto:[email protected]> http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://mail.lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
