-
Notifications
You must be signed in to change notification settings - Fork 38
GetField15C
anna-dodd edited this page Jun 3, 2015
·
1 revision
Getting a field as a string:
/* Get the FHDR (NITF|NSIF)*/
char fhdr[NITF_FHDR_SZ + 1]; /* Fields are not null-terminated, so add a byte to our array */
/* Retrieve the data as a string with a null-byte on the end */
if (!nitf_Field_get(fhdr, fhdr_str, NITF_CONV_STRING, NITF_FHDR_SZ + 1, &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
char fhdr[NITF_FHDR_SZ + 1]; /* Fields are not null-terminated, so add a byte to our array */
/* Retrieve the data as a string with a null-byte on the end */
if (!nitf_Field_get(fhdr, fhdr_str, NITF_CONV_STRING, NITF_FHDR_SZ + 1, &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
Getting a field as an int:
nitf_Int32 int32;
/* Get the header length out as an integer */
if (!nitf_Field_get(hl, &int32, NITF_CONV_INT, 4, &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
/* Get the header length out as an integer */
if (!nitf_Field_get(hl, &int32, NITF_CONV_INT, 4, &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
Getting a field as a real:
/* Get this field as a double */
if (!nitf_Field_get(realField, &doubleData, NITF_CONV_REAL, sizeof(double), &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
/* Now get the same data as a float */
if (!nitf_Field_get(realField, &floatData, NITF_CONV_REAL, sizeof(float), &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
if (!nitf_Field_get(realField, &doubleData, NITF_CONV_REAL, sizeof(double), &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
/* Now get the same data as a float */
if (!nitf_Field_get(realField, &floatData, NITF_CONV_REAL, sizeof(float), &error))
{
nitf_Error_print(&error, stdout, "Error occured!");
exit(EXIT_FAILURE);
}
Getting a field from a TRE:
/* Get the first element of numpts out */
nitf_Pair* pair = nitf_HashTable_find(tre->hash, "NUMPTS[0]");
nitf_Field* field = (nitf_Field*)pair->data;
int value;
if (!nitf_Field_get(field, &value, NITF_CONV_INT, sizeof(int), &error))
{
/* ... Handle error ... */
}
nitf_Pair* pair = nitf_HashTable_find(tre->hash, "NUMPTS[0]");
nitf_Field* field = (nitf_Field*)pair->data;
int value;
if (!nitf_Field_get(field, &value, NITF_CONV_INT, sizeof(int), &error))
{
/* ... Handle error ... */
}