SUBSTR( )

 Extrae una sub cadena de una cadena de caracteres

Sintaxis

     SUBSTR(<cCadena>, <nInicio>, [<nCaracteres>]) –> cSubcadena

Argumentos

<cCadena> es la cadena de caracteres de la que va a extraerse una subcadena. Puede tener hasta 65.535 (64K) bytes, el tamaño máximo de cadena en DPXBASE.

<nInicio> es la posición inicial en <cCadena>. Si <nInicio> es positivo, es relativo al carácter situado en el extremo izquierdo de <cCadena>. Si es negativo, es relativo al carácter situado en el extremo derecho de <cCadena>.

<nCaracteres> es el número de caracteres que hay que extraer. Si se omite, la subcadena empieza en <nInicio> y continúa hasta el final de la cadena. Si <nCaracteres> es mayor que el número de caracteres desde <nInicio> hasta el final de <cCadena>, los caracteres adicionales se ignoran.

Devuelve

SUBSTR() devuelve una cadena de caracteres.

Descripción

SUBSTR() es una función de caracteres que extrae una subcadena de otra cadena de caracteres o campo memo. SUBSTR() está relacionada con las funciones LEFT() y RIGHT() que extraen subcadenas empezando por los caracteres situados más a la izquierda y a la derecha de <cCadena>, respectivamente.

Las funciones SUBSTR(), RIGHT() y LEFT() se utilizan muy a menudo con AT() y RAT() para localizar la primera y/o última posición de una su cadena antes de extraerla. También se utilizan para mostrar o imprimir sólo una parte de una cadena de caracteres.

Ejemplos

     ¦  Estos ejemplos extraen el nombre y apellido de una variable:

        cNombre:= “Juan Pedralbes”

        ? SUBSTR(cNombre, 1, 4)                                     // Resultado: Juan

        ? SUBSTR(cNombre, 6)                                      // Resultado: Pedralbes

        ? SUBSTR(cNombre, LEN(cNombre) + 2)         // Resultado:

                                                                                 // cadena nula

        ? SUBSTR(cNombre, -9)                                 // Resultado: Pedralbes

        ? SUBSTR(cNombre, -9, 3)                            // Resultado: Ped

     ¦  Este ejemplo utiliza SUBSTR() con AT() y RAT() para crear una función que extrae un nombre de fichero de una especificación de fichero:

        ? FichBase(“C:\PRG\MIFICHE.OBJ”)             // Resultado: MIFICHE.OBJ

        FUNCTION FichBase( cFichero )

           LOCAL nPos

           IF (nPos := RAT(“\”, cFichero)) != 0

              RETURN SUBSTR(cFichero, nPos + 1)

           ELSEIF (nPos := AT(“:”, cFichero)) != 0

              RETURN SUBSTR(cFichero, nPos + 1)

           ELSE

              RETURN cFichero

           ENDIF

Ficheros: La biblioteca asociada es DPXBASE.CH.