📄 isotrxl.cpp
字号:
//
// IT24 Sitemas S.A.
// BitMap String Library
//
// Libreria de Headers ISO, implementadas como un arreglo de estructuras de tamano
// fijo de 32 bytes, para optimizar las busquedas e inserciones, mas, mejorar las
// referencias a memoria manteniendo la localidad de los datos, relegando otras
// implementaciones con listas-pilas-colas variables.
//
// Tarea Fecha Autor Observaciones
// (Inicial) 2002.07.16 mdc Base
//
// Headers propios
#include <qusrinc/alias.h>
#include <qusrinc/typedefs.h>
#include <qusrinc/isotrxls.h>
// Standard I/O memory functions
#include <memory.h>
#include <string.h>
// Clase Lista de BitMapStr
// Constructor por default
ISOTRXLIST::ISOTRXLIST()
{
// Contador a cero
iCounter = 0;
}
// Constructor opcional
ISOTRXLIST::ISOTRXLIST(PSTR pszExtBitmap, INT iLen)
{
// Contador a cero
iCounter = 0;
// Chequear longitudes...
if(iLen >= BITMAP_STR_LEN)
// Copia interna al final de la lista
memcpy(strlIsoTrxs[iCounter++].byte, pszExtBitmap, BITMAP_STR_LEN);
// e incremento a posteriori del contador
}
// Destructor
ISOTRXLIST::~ISOTRXLIST()
{
// Contador a cero
iCounter = 0;
}
// Insercion
BOOL ISOTRXLIST::Insert(PSTR pszExtBitmap, INT iLen)
{
// Chequear longitudes...
if( (iLen >= BITMAP_STR_LEN)
&&
// y maximo de contador
(iCounter < MAX_BITMAPS)
&&
// y no existe previamente
(Find(pszExtBitmap, BITMAP_STR_LEN) == FALSE)
)
{
// Copia interna al final de la lista
memmove( &strlIsoTrxs[iCounter].byte[0], pszExtBitmap, BITMAP_STR_LEN);
// e incremento a posteriori del contador
iCounter++;
// Ok
return (TRUE);
}
else
return (FALSE);
}
// Buscador
BOOL ISOTRXLIST::Find(PSTR pszExtBitmap, INT iLen)
{
// Precondicion
if( (iCounter == 0) || (iLen < BITMAP_STR_LEN))
return (FALSE);
// Iteracion para la busqueda
for (INT i = 0; i < iCounter; i++)
// Es el BitMapString buscado?
if ( memcmp(strlIsoTrxs[i].byte, pszExtBitmap, BITMAP_STR_LEN) == 0 )
// Hallado
return (TRUE);
// No hallado
return (FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -