Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css

...

Pagetitle
MLCount

...

MLCount

Conta

...

a

...

quantidade

...

de

...

linhas

...

de

...

um

...

campo

...

memo

...

ou

...

string

...

com

...

múltiplas

...

linhas, considerando um numero máximo de letras por linha, tamanho estimado para caracteres de tabulação, e quebras de linhas CRLF (pulo de linha) dentro do texto.

 

Sintaxe

Bloco de código
nLin := MLCount(<cText>, [nLinLen], [nTabSize], [lQuebra])

Parâmetros

MLCount ( < cText> ) --> nLines

...

NomeTipoDescriçãoObrigatório

...

cText

...

caracterIndica o texto com múltiplas linhas para verificar a quantidade de linhas.X

...

nLinLennumérico

Especifica o número de caracteres por linha para que ocorra a quebra de linhas. (Default: 79)

 
nTabSizenuméricoDefine um tamanho para tabulação. (Default: 4) 
lQuebralógico

Especifica o comportamento de contagem de linhas quando a ultima palavra não cabe inteira na linha atual.
   .T. - Coloca a palavra na próxima linha (Default)
   .F. - Quebra a palavra no tamanho da linha e coloca o restante na próxima linha.

 

Retorno

NomeTipoDescrição
nLinNumérico

...

Retorna o número de linhas da string considerando os parâmetros de formatação informados.

...

// Cria campo com múltiplas linhas para testecLine := "Linha 01 Linha 01 Linha 01 Linha 01 "+CRLFcLine += "Linha 02 Linha 02 Linha 02 Linha 02 "+CRLF                     // Verifica o número de linhas no textonLines := MLCount(cLine)// Varre todas as linhas do textoFor nX := 1 To nLines	MsgAlert( MemoLine(cLine,,nX) )Next nX

...

Exemplo

Bloco de código
languagecpp
themeEclipse
linenumberstrue
user function exemplo()
    
    Local i, nTam , nLin, nLin2
    Local cString
    
    cString := "Lorem ipsum dolor sit amet, urna nullafusce vehicula porttitor lobortis "
    cString += "sapien, eget taciti nam tincidunt viverra saepe, eleifend et neque "
    cString += "justonunc adipiscing. Eget eu ut sed est sed accumsan, sit sed ultrices id "
    cString += "scelerisque ullamcorper at, sodales accumsan et per blandit et, enim "
    cString += "porta metus voluptatem luctus wisi, vel nunc tellus pellentesque "
    cString += "tincidunt urn."
    
    nTam := len(cString)
    conout( "Tamanho da String = " + cValToChar(nTam))
    
    nLin := mlcount(cString,40)
    conout( "Total de Linhas ( sem quebrar palavras ) = " +cValToChar( nLin ))
    
    For i := 1 to nLin
        conout( "Linha "+ str(i,2) +" ["+memoline(cString,40,i)+"]")
    Next
    
    nLin2 := mlcount(cString,40,,.F.)
    conout( "Rotal de Linhas ( quebrando as palavras ) = " +cValToChar( nLin2 ))
    
    For i := 1 to nLin2
        conout( "Linha "+ str(i,2) +" ["+memoline(cString,40,i,,.F.)+"]")
    Next
Return

No exemplo acima, o resultado esperado segue abaixo:

Sem Formato
Tamanho da String = 362
Total de Linhas ( sem quebrar palavras ) = 10
Linha 1  [Lorem ipsum dolor sit amet, urna        ]
Linha 2  [nullafusce vehicula porttitor lobortis  ]
Linha 3  [sapien, eget taciti nam tincidunt       ]
Linha 4  [viverra saepe, eleifend et neque        ]
Linha 5  [justonunc adipiscing. Eget eu ut sed est]
Linha 6  [sed accumsan, sit sed ultrices id       ]
Linha 7  [scelerisque ullamcorper at, sodales     ]
Linha 8  [accumsan et per blandit et, enim porta  ]
Linha 9  [metus voluptatem luctus wisi, vel nunc  ]
Linha 10 [tellus pellentesque tincidunt urn.      ]

Total de Linhas ( quebrando as palavras ) = 9
Linha 1  [Lorem ipsum dolor sit amet, urna nullafu]
Linha 2  [sce vehicula porttitor lobortis sapien, ]
Linha 3  [eget taciti nam tincidunt viverra saepe,]
Linha 4  [eleifend et neque justonunc adipiscing. ]
Linha 5  [Eget eu ut sed est sed accumsan, sit sed]
Linha 6  [ultrices id scelerisque ullamcorper at, ]
Linha 7  [sodales accumsan et per blandit et, enim]
Linha 8  [porta metus voluptatem luctus wisi, vel ]
Linha 9  [nunc tellus pellentesque tincidunt urn. ]