$FUNCNAME$
  MLCTOPOS()
$CATEGORY$
  STRING
$SUMMARY$
   Return the byte position of a formatted string based on line and column
$LANG_RU$
            
$SYNTAX$
     MLCTOPOS(<cText>, <nWidth>, <nLine>, <nCol>, [<nTabSize>], [<lWrap>]) --> nPosition
$LANG_RU$
     MLPOS(< >,< >, < >, < >,
	 [< >], [< >]) -->  
$ARGUMENTS$
     <cText> is the text string to be scanned.
     <nWidth> is the line length formatting width.
     <nLine> is the line number counting from 1.
     <nCol> is the column number counting from 0.
     <nTabSize> is the number of columns between tab stops.  If not
     specified, the default is 4.
     <lWrap> is the word wrap flag.  If not specified, the default is
      true (.T.).
$LANG_RU$
     < > -    .
     < > -   .
     < > -  ;   1.
     < > -  ;   0.
     < > -    .    
     ,         4.
     < > -  ,  
      .    ,     -
     "" (.T.).
$RETURNS$
     MLCTOPOS() returns the byte position within <cText> counting from 1.
$LANG_RU$
     MLCTOPOS()      < >,
       1.
$DESCRIPTION$
     MLCTOPOS() is a memo function that determines the byte position that
     corresponds to a particular line and column within the formatted text.
     Note that the line number is one-relative and the column number is
     zero-relative.  This is compatible with MEMOEDIT().  The return value is
     one-relative, making it suitable for use in SUBSTR() or other string
     functions.
$LANG_RU$
     MLCTOPOS() -     MEMO-,  
       ,      
      .     ,  
      -  ,     MEMOEDIT(). 
        ,    
      MLCTOPOS()  SUBSTR()    .
$EXAMPLES$
       This example determines the byte position of line 5, column 3
	in the cText string:

	cText := "Note the side on which the bread ;
		    is buttered."
	//
	? MLCTOPOS(cText, 5, 3, 0)         // Result: 10
$LANG_RU$
               .
           5    .
              
       :

       cText := " ,    "
       //
       ? MLCTOPOS(cText, 5, 3, 0)         // : 9
$SEEALSO$
  MEMOEDIT(),MLPOS(),MPOSTOLC()
$END$
