Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Espero que seja útil, se tiver erro por favor comunique...sugestões e críticas sempre bem vindas:
ASP
'Função resumetxto'Criada por : Jonathan Cardozo (jonathandj)
'Data : 15-09-2007
'Objetivo : Resumir uma string sem tags Html definindo o texto indicando que há mais conteudo
'Mantenham os Créditos
function resumetexto(str,pos,strLink)
'strAux = string com ou sem tags html a ser resumida
'pos = quantidade de caracteres a serem exibidos no resumo
'strLink = string contendo o endereço completo para criar um link ou texto simples para exibir no final quando o texto for resumido
strAux = str
semhtml = trim(limpaHtml(strAux))
if instr(trim(mid(semhtml,1,len(semhtml)))," ")<>0 then
if len(semhtml) >= pos+1 then
if trim(mid(semhtml,pos,pos-1)) <> " " then
posicaoEspaco = instrrev(trim(mid(semhtml,1,pos-1))," ")
if posicaoEspaco <> 0 then
semhtml = trim(mid(semhtml,1,posicaoEspaco))&strLink
else
posicaoEspacoPalavra = instr(mid(semhtml,1,len(semhtml))," ")
if posicaoEspaco < instr(trim(mid(semhtml,1,posicaoEspacoPalavra))," ") then
semhtml = trim(mid(semhtml,1,pos))&strLink
else
semhtml = trim(mid(semhtml,1,posicaoEspacoPalavra))&strLink
end if
end if
end if
end if
end if
resumetexto = semhtml
end function
'Função limpaHtml retirado do fórum iMasters
Function limpaHtml(strHtml)
'strHtml = string contendo texto com tags html
Dim objER
Set objER = New RegExp
objER.IgnoreCase = True
objER.Global = True
objER.Pattern = "<[^>]*>"
StrAux = strHTML
StrAux = objER.Replace(StrAux, "")
Set objER = Nothing
limpaHtml = StrAux
End Function
Exemplos de chamada:
ASP
response.write(resumetexto("minha string contendo o texto que desejo resumir sem cortar a palavra",50," <a href=""leiamais.asp?id=1"">Leia mais</a>"))
response.write(resumetexto("minha string contendo o texto que desejo resumir sem cortar a palavra",12," ..."))
response.write(resumetexto("minha string contendo o texto que desejo resumir sem cortar a palavra",200," [Notícia Completa]"))
Valeu Tedk, nada que uns IFs não resolvam hehehe
e Haja if ai meu camarada (hehehe)
Não sei se esse é o lugar certo pra tirar essa dúvida, mas enfim, n consigo implementar esse código com um registro vindo do banco, já tentei de tudo... Tá assim atualmente:
<% response.write(resumetexto("imoveis.Fields.Item("ShortDesc").Value",12," ...")) %>
Desde já agradeço se alguém puder me dar uma dica de como fazer funcionar
Qual o erro?
Tipo de erro:
Erro de compilação do Microsoft VBScript (0x800A03EE)
')' esperado
/novo_central/index.asp, line 451, column 49
response.write(resumetexto("imoveis.Fields.Item("ShortDesc").Value",12," ..."))
------------------------------------------------^
Já tentei colocar o ")" de todo jeito e não consigo.
usa assim:
<% response.write(resumetexto(imoveis("ShortDesc").Value,12," ...")) %>
Faça o que o augustoclaro disse. você havia colocado aspas no lugar errado.
Muito obrigado augusto e hargon, funcionou perfeitamente.
Testado e aprovado!!!!
Parabéns pelo código amigo Jonathan, sempre ajudando a galera!!