Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Sintaxe e exemplo atualizado

...

Portuguese

Pagetitle
MLCount
MLCount

Conta a quantidade de linhas de um campo memo ou string com múltiplas linhas.
Além disso, verifica o número de , 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<cText>, [nLinLen], [nTabSize], [lQuebra])

 

Parâmetros

 

NomeTipoDescriçãoObrigatório
cTextCaracterIndica 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 que a quebra deve ocorrer no meio da palavra ou ao final delao comportamento de contagem de linhas quando a ultima palavra não cabe inteira na linha atual.
.T. - Ocorre no meio da palavra Coloca a palavra na próxima linha (Default)
.F. - Ocorre ao final da aplavraQuebra 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.

 

 

Exemplo

Bloco de código
themeEclipse
languagecpp
titleExemplo 1
linenumberstrue
collapsefalse
user

User funtionfunction exemploPOCMEMOL()
 
local cTextLocal i, nTam , nLin, nLin2
Local cString 
cString := ""
local nLin
 
// Cria campo com múltiplas linhas para teste
cText := "Linha 01 Linha 01 Linha 01 Linha 01 "+CRLF
cText += "Linha 02 Linha 02 Linha 02 Linha 02 "+CRLF
cText += "Linha 03 Linha 03 Linha 03 Linha 03 "+CRLF


nLin := MLCount(cText,40,,.T.)


// Varre todas as linhas do texto
nor nX := 1 To nLin
	conOut( MemoLine(cText,,nX) )
next

 
returnLorem 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:

 

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. ]
Rotal 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. ]