Retrieves a buffer for the text data at a specified index in the text segment.
#include "ltntf.h"
L_LTNTF_API L_INT L_NITFGetTextSegment(hNitf, uIndex, pTextBuffer, puBufferSize)
Handle to an existing NITF file, created by calling the L_NITFCreate function.
A zero-based Index of the text data in the text segment.
Pointer to a buffer to be updated with the text data.
Pointer to a variable to be updated with the length of the text data intended to retrieve.
| Value | Meaning |
|---|---|
| SUCCESS | The function was successful. |
| < 1 | An error occurred. Refer to Return Codes. |
To use this function:
Call this function passing pTextBuffer as NULL to obtain the text length in the puBufferSize parameter.
Allocate a buffer of size (*puBufferSize + 1).
Call this function passing the allocated buffer to the pTextBuffer parameter to obtain the text data.
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 FilenRet =L_NITFCreate (&hNitf, MAKE_IMAGE_PATH(TEXT("test.ntf")));if(nRet !=SUCCESS)return nRet;//Check if the hNITF is Empty or InvaliduFlags = 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 HeaderuCount = 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;}