Share via


MLINE( ) (Función)

Devuelve una línea específica de un campo memo como una cadena de caracteres.

MLINE(MemoFieldName, nLineNumber [, nNumberOfCharacters])

Valores devueltos

Character

Parámetros

  • MemoFieldName
    Especifica el nombre del campo memo desde el cual MLINE( ) devuelve una línea. Si el campo memo está en una tabla abierta en un área de trabajo no activa, incluya delante del nombre del campo memo un punto y el alias de la tabla.

  • nLineNumber
    Especifica el número de la línea del campo memo que se debe devolver. Devuelve una cadena vacía si nLineNumber es negativo, 0, o mayor que el número de líneas del campo memo.

  • nNumberOfCharacters
    Especifica el número de caracteres, contado desde el principio del campo memo del que MLINE( ) devuelve la línea especificada.

    La variable del sistema _MLINE se suele utilizar para nNumberOfCharacters. _MLINE se ajusta automáticamente cada vez que se llama a MLINE( ).

    En procedimientos recursivos que devuelven líneas a partir de campos memo grandes, puede mejorar el rendimiento si incluye _MLINE en nNumberOfCharacters.

Observaciones

MLINE( ) elimina todos los espacios finales desde la línea especificada con nLineNumber.

La longitud y el número de líneas de un campo memo están determinados por el valor actual de SET MEMOWIDTH (la longitud de línea predeterminada es 50 caracteres). Si encuentra un retorno de carro, no devolverá ningún carácter adicional. El ajuste actual de _WRAP determina la forma en que se visualiza la línea del campo memo.

Cuando se busca una cadena alfanumérica en un campo memo, puede utilizar ATLINE( ) o ATCLINE( ) para devolver el número de la línea en la que se encuentra la cadena alfanumérica. Utilice este número de línea en MLINE( ) para devolver el contenido de la línea del campo memo.

Ejemplo

En el ejemplo siguiente, se utilizan dos métodos para devolver líneas de un campo memo. Dos bucles utilizan MLINE( ) para devolver líneas de un campo memo. Observe la mejora de rendimiento en el segundo bucle cuando se utiliza la variable del sistema _MLINE( ) en MLINE( ).

CLEAR
SET TALK OFF
SET MEMOWIDTH TO 50
CLOSE DATABASES
CREATE TABLE tmemo (name c(10), notes m)
APPEND BLANK                  && Add a record
WAIT WINDOW 'Filling memo field - takes several seconds' NOWAIT

** Fill the memo field ** FOR gnOuterLoop = 1 TO 5 && loop 5 times FOR gnAlphabet = 65 TO 75 && letters A to H REPLACE notes WITH REPLICATE(CHR(gnAlphabet), 10) ; + CHR(13) ADDITIVE NEXT NEXT

** Display all lines from the memo field **

STORE MEMLINES(notes) TO gnNumLines   && Number of lines in memo field
STORE SECONDS( ) TO gnBegin      && Beginning time
FOR gnCount = 1 TO gnNumLines   && Loop for # of lines in memo field
   ? MLINE(notes, gnCount)      && Display each line
NEXT
? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds'   && Total time

_** Preferable method using MLINE in MLINE( ) ** ** Display all lines from the memo field **

WAIT 'Press a key to see the preferred method' WINDOW
CLEAR
STORE 0 TO _MLINE             && Reset _MLINE to zero
STORE SECONDS( ) TO gnBegin      && Beginning time
FOR count = 1 TO gnNumLines      && Loop for # of lines in memo field
   ? MLINE(notes, 1, _MLINE)      && Display each line
NEXT
? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds'   && Total time
SET TALK ON
CLOSE DATABASES
ERASE tmemo.dbf
ERASE tmemo.fpt

Vea también

ALINES( ) | ATCLINE( ) | ATLINE( ) | COPY MEMO | MEMLINES( ) | _MLINE | MODIFY MEMO | SET MEMOWIDTH | _WRAP