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: |
|
|
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; }