L_NITFGetTextSegment

#include "ltntf.h"

L_LTNTF_API L_INT L_NITFGetTextSegment(hNitf, uIndex, pTextBuffer, puBufferSize)

HNITF hNitf;

/* handle to the NITF file */

L_UINT uIndex;

/* index of the text data in the text segment */

L_CHAR* pTextBuffer;

/* text data buffer */

L_UINT * puBufferSize;

/* size of the buffer pointed to by pTextBuffer */

Retrieves a buffer for the text data at a specified index in the text segment.

Parameter

Description

hNitf

Handle to an existing NITF file, created by calling the L_NITFCreate function.

uIndex

A zero-based Index of the text data in the text segment.

pTextBuffer

Pointer to a buffer to be updated with the text data.

puBufferSize

Pointer to a variable to be updated with the length of the text data intended to retrieve.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

To use this function:

1.

Call this function passing pTextBuffer as NULL to obtain the text length in the puBufferSize parameter.

2.

Allocate a buffer of size (*puBufferSize + 1).

3.

Call this function passing the allocated buffer to the pTextBuffer parameter to obtain the text data.

Required DLLs and Libraries

LTNTF

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application

See Also

Functions:

L_NITFGetTextHeaderCount, L_NITFGetTextHeader, L_NITFSetTextHeader.

Topics:

NITF Functions: Getting and Setting Text Data

 

Programming with LEADTOOLS NITF Functions

Example

L_LTNTFTEX_API L_INT NITFGetTextSegmentExample(L_VOID)
{
   L_INT nRet = SUCCESS;
   HNITF hNitf;
   L_UINT uFlags = 0;
   TXTHEADER TextHeader;
   L_UINT uCount;
   L_UINT i = 0;
   memset(&TextHeader, 0, sizeof(TXTHEADER));
   //Create hNitf Handle and Parse the NITF File
   nRet =L_NITFCreate (&hNitf, TEXT("C:\\Program Files\\LEAD Technologies\\LEADTOOLS 16\\Images\\test.ntf"));
   if(nRet !=SUCCESS)
      return nRet;
   //Check if the hNITF is Empty or Invalid
   uFlags = L_NITFGetStatus(hNitf);
   if((uFlags & NITF_FILE_EMPTY) == NITF_FILE_EMPTY)
   {
      MessageBox(NULL,TEXT("NITF File is Empty"),NULL,MB_OK);
      return FAILURE;
   }
   if((uFlags & NITF_FILE_VALID) != NITF_FILE_VALID)
   {
      MessageBox(NULL,TEXT("NITF File is Invalid"),NULL,MB_OK);
      return FAILURE;
   }
   // Update the Text Header
   uCount = L_NITFGetTextHeaderCount(hNitf);
   for( i = 0; i < uCount; ++i)
   {
      L_UINT uBufferSize =0;
      L_CHAR * pTextBuffer = NULL;
      L_NITFGetTextSegment(hNitf, i, NULL, &uBufferSize);
      if(uBufferSize > 0)
      {
         pTextBuffer = (L_CHAR*)malloc(uBufferSize + 1);
         if(pTextBuffer)
         {
            L_NITFGetTextSegment(hNitf, i, pTextBuffer, &uBufferSize);
            MessageBoxA(NULL, pTextBuffer, "Text Segment", 0);
            free(pTextBuffer);
            pTextBuffer = NULL;
         }
      }
   }
   nRet =L_NITFDestroy(&hNitf);
   if(nRet !=SUCCESS)
      return nRet;
   return SUCCESS;
   }