MEMOLINE() Extract a line of text from a character string or memo field ------------------------------------------------------------------------------ Syntax MEMOLINE(<cString>, [<nLineLength>], [<nLineNumber>], [<nTabSize>], [<lWrap>]) --> cLine Arguments <cString> is the memo field or character string from which a line of text is to be extracted. <nLineLength> specifies the number of characters per line and can be between four and 254. If not specified, the default line length is 79. <nLineNumber> is the line number to be extracted. If not specified, the default value is one. <nTabSize> defines the tab size. If not specified, the default value is four. If <nTabSize> is greater than or equal to <nLineLength>, then the tab size is automatically converted to <nLineLength> - 1. <lWrap> toggles word wrap on and off. Specifying true (.T.) toggles word wrap on; false (.F.) toggles it off. If not specified, the default value is true (.T.). Returns MEMOLINE() returns the line of text specified by <nLineNumber> in <cString> as a character string. If the line has fewer characters than the indicated length, the return value is padded with blanks. If the line number is greater than the total number of lines in <cString>, MEMOLINE() returns a null string (""). If <lWrap> is true (.T.) and the indicated line length breaks the line in the middle of a word, that word is not included as part of the return value but shows up at the beginning of the next line extracted with MEMOLINE(). If <lWrap> is false (.F.), MEMOLINE() returns only the number of characters specified by the line length. The next line extracted by MEMOLINE() begins with the character following the next hard carriage return, and all intervening characters are not processed. Description MEMOLINE() is a memo function used with MLCOUNT() to extract lines of text from character strings and memo fields based on the number of characters per line. It is the most basic facility provided by Clipper to display memo fields and long strings. The basic method of operation is to determine the number of lines in the memo field or character string using MLCOUNT() with the same number of characters per line, tab size, and wrapping behavior as you intend to use with MEMOLINE(). Using this value as the upper boundary of a FOR...NEXT, each line of the memo field or character string can be extracted with MEMOLINE() and processed with any combination of output commands and functions required. Examples . This example demonstrates the general method for displaying memo fields and long character strings using the combination of MLCOUNT() and MEMOLINE(): LOCAL nLineLength := 40, nTabSize := 3, lWrap := .T. LOCAL nLines, nCurrentLine USE Customer INDEX CustName NEW // nLines := MLCOUNT(CustNotes, nLineLength,; nTabSize, lWrap) // SET PRINTER ON FOR nCurrentLine := 1 TO nLines ? MEMOLINE(CustNotes, nLineLength, nCurrentLine,; nTabSize, lWrap) NEXT SET PRINTER OFF Files Library is EXTEND.LIB.
See Also: MEMOEDIT() MLCOUNT() MLPOS()