On Jun 3, 2010, at 9:23 AM, Mark Miller wrote:

> Ah, I see. Well, that is definitely different from what I was thinking
> he was asking. And, requires a different answer than I gave. ;)

        Well, now he knows both pieces of information. :-)

                Quincey

> Mark
> 
> On Thu, 2010-06-03 at 04:39, Quincey Koziol wrote:
>> Hi Mark,
>> 
>> On Jun 2, 2010, at 9:36 PM, Mark Miller wrote:
>> 
>>> Yes. But the procedure you'd use depends a bit on what kind of object
>>> you are talking about (dataset or attribute) and how you chose to define
>>> the object. Did you use H5T_C_S1 as the datatype for the string? Did you
>>> maybe just define a dataset/attribute of type H5T_NATIVE_CHAR and then
>>> an 1D dataspace of some size? I think those choices effect how you'd go
>>> about obtaining length.
>>> 
>>> A general algorithm might look like...
>>> 
>>>    1. whether its a dataset or attribute, you need to open it first
>>>       (H5Dopen/H5Aopen)
>>>    2. then get its datatype (H5Dget_type/H5Aget_type)
>>>    3. then get the size of that datatype (H5Tget_size)
>>>    4. Then get the size of the dataspace
>>>    5. Use results from steps 3 and 4 to determine total size.
>> 
>>      Actually, I think that Ken is trying to determine the actual string 
>> length for an individual element of a dataset or attribute, and he's correct 
>> that there's no way to retrieve the length before reading it in.  The method 
>> you describe above is correct for determining the size of the array an 
>> application will need to allocate for reading the strings, but the size 
>> returned from H5Tget_size() should be the same as sizeof(char *) (for 
>> variable-length strings - for variable-length sequences of another datatype, 
>> it should be sizeof(hvl_t)).  The memory for the actual strings themselves 
>> will be allocated at read time (and the malloc/free routines used can be 
>> controlled with H5Pset_vlen_mem_manager).
>> 
>>      Quincey
>> 
>>> Mark
>>> 
>>> On Wed, 2010-06-02 at 18:55, Ken Sullivan wrote:
>>>> Quick question, is there a way to find the length of a variable length
>>>> string without first reading it?
>>>> 
>>>> Thanks,
>>>> Ken
>>> -- 
>>> Mark C. Miller, Lawrence Livermore National Laboratory
>>> ================!!LLNL BUSINESS ONLY!!================
>>> [email protected]      urgent: [email protected]
>>> T:8-6 (925)-423-5901     M/W/Th:7-12,2-7 (530)-753-851
>>> 
>>> 
>>> _______________________________________________
>>> Hdf-forum is for HDF software users discussion.
>>> [email protected]
>>> http://*mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>> 
>> 
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> [email protected]
>> http://*mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
> -- 
> Mark C. Miller, Lawrence Livermore National Laboratory
> ================!!LLNL BUSINESS ONLY!!================
> [email protected]      urgent: [email protected]
> T:8-6 (925)-423-5901     M/W/Th:7-12,2-7 (530)-753-851
> 
> 
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to