Ver Mensaje Individual
  #4  
Antiguo 22-07-2005
Abel Garcia Abel Garcia is offline
Miembro
 
Registrado: nov 2004
Posts: 45
Reputación: 0
Abel Garcia Va por buen camino
Hola Rufus

Que tal de antemano gracias por la atension.

Tambien yo tengo instalado la version 1.5.2 y los archivos de donde saque el ejemplo que cito en mi hilo son:

C:\Archivos de programa\Firebird\Firebird_1_5\examples\udflib.c
C:\Archivos de programa\Firebird\Firebird_1_5\include\ib_util.h
C:\Archivos de programa\Firebird\Firebird_1_5\lib\ib_util_ms.lib
C:\Archivos de programa\Firebird\Firebird_1_5\examples\udf.sql


en el Archivo "C:\Archivos de programa\Firebird\Firebird_1_5\examples\udflib.c"
se encuentra el codigo :

char* EXPORT fn_lower_c (ARG(char*, s))
ARGLIST(char *s) /* VARCHAR input */
{
char *buf;
short length = 0;
char *buffer = (char *)malloc(256);
length = (short)*s;
s += 2;
buf = buffer;
while (*s)
if (*s >= 'A' && *s <= 'Z')
*buf++ = *s++ - 'A' + 'a';
else
*buf++ = *s++;
*buf = '\0';
buffer [length] = '\0';
return buffer;
}

y en el archivo "C:\Archivos de programa\Firebird\Firebird_1_5\examples\udf.sql" se encuentra el codigo :

DECLARE EXTERNAL FUNCTION lower
VARCHAR (256)
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'fn_lower_c' MODULE_NAME 'udflib';

que corresponde al codigo de la base de datos

Bueno esto es con respecto al codigo de duda, por otra parte me gustaria aclarar que mi interes no es utilizar o reporgramar la funcion lower.
este lo tome como ejemplo debido a que retorna una cadena, mi interes de echo es hacer una Funcion que devuelva Uno de los elementos de una cadena separado cada elemento por por ejemplo un "." Por ejemplo

F("carro.casa.perro" , 1 ) = carro
F("carro.casa.perro" , 2 ) = casa
F("carro.casa.perro" , 3 ) = Perro

bueno espero ser claro con esta explicacion. talvez esta funcion ya exista en alguna libreria y yo este intentando inventar el hilo negro, de ser asi pues agradeceria el tip.
De antemano muchas gracias.
Responder Con Cita