Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mauriciodellafina

Quebra de texto

Recommended Posts

Saudações,

 

Estou tentando fazer um website e já consegui resolver inumeros problemas graças aos tópicos desse Forum, no entanto, não consegui achar nada em relação a dúvida que agora tenho, ou seja:

 

Estou implementando uma seção denominada de "Manuais", porém o conteúdo de cada registro é muito extenso, nesse sentido queria uma função que mostrasse um número x de linhas ou de caracteres desse conteúdo, na primeira página, o restante na segunda ou quantas forem necessárias para mostrar na tela todo o registro (campo - conteudo).

 

Além disso na parte de baixo de cada página que mostrasse um menu numerado para navegação nas referidas páginas

[primeira] [1] [2] [3]... [última].

 

Estou desenvolvendo em ASP, Access, orientado a projeto no MX Dreamweaver.

 

Desde já agradeço a colaboração e a paciência de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no laboratório de scripts asp tem funções para resumir um texto e corta-lo quando necessário, e neste mesmo laboratorio você encontra para paginar

Compartilhar este post


Link para o post
Compartilhar em outros sites

no laboratório de scripts asp tem funções para resumir um texto e corta-lo quando necessário, e neste mesmo laboratorio você encontra para paginar

 

Ola jonathandj,

 

Realmente eu achei algumas funções para resumir texto, 3 pontinhos entre outros, bem como já localizei para paginar, mas como sou iniciante, realmente ainda não sei unir essas duas funções, embora já tenha tentado por diversas vezes.

 

Observei e utilizei a função resumindo, ela retorna o número de caracteres lá atribuido, mas não chama o restante do texto. As diversas funções para paginação que encontrei apenas serve para listar o número de registros desejado e não pagina um único registro, então não houve meio de utilizá-las.

 

Ainda estou procurando, caso souber de alguma função que faça o que eu quero seria de grande valia, mas desde já obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem varias funcoes, inclusive uma k você pode determinar a quantidade de caracteres a cortar/resumir, da uma pesquisada e surgindo duvidas ,poste ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem varias funcoes, inclusive uma k você pode determinar a quantidade de caracteres a cortar/resumir, da uma pesquisada e surgindo duvidas ,poste ae...

 

Ola xanburzum,

 

Realmente eu achei algumas funções para resumir texto, 3 pontinhos entre outros, bem como já localizei para paginar, mas como sou iniciante, realmente ainda não sei unir essas duas funções, embora já tenha tentado por diversas vezes.

 

Observei e utilizei a função resumindo, ela retorna o número de caracteres lá atribuido, mas não chama o restante do texto. As diversas funções para paginação que encontrei apenas serve para listar o número de registros desejado e não pagina um único registro, então não houve meio de utilizá-las.

 

Ainda estou procurando, caso souber de alguma função que faça o que eu quero seria de grande valia, mas desde já obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Ted K pela pronta atenção, primeiramente quero dizer que seu trabalho é realmente singular, gostei muito do resultado final e certo que utilizarei em outras aplicações em meu website, mas infelizmente ainda não é o que preciso.

 

A questão da paginação como apresentado no link que me forneceu age em registros distintos, mostra em linha cada entrada no banco de dados, no meu caso, quero mostrar uma única entrada, porém num determinado ponto haja uma quebra de texto e logo abaixo um link para a continuação.

 

Nesse link tem um exemplo... http://jus2.uol.com.br/doutrina/texto.asp?id=6707 .....nota-se que o artigo se estende até um certo ponto e para não quebrar o formato do site ou para não deixar muito extenso, disponibiliza um link para a continuação...

 

Atenciosamente amigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, vai por mim, dá uma garimpada no forum, k existem ótimas, funções, inclusive, você pode pegá-las e alterar para suia necessidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo, vai por mim, dá uma garimpada no forum, k existem ótimas, funções, inclusive, você pode pegá-las e alterar para suia necessidade

 

Ok, vou ver o que posso fazer com o que tem no forum, apesar da minha procura não ter obtido exito, mas obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

procura no lab de scripts....

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, limitando 40 caracteres

 

 

<%
' Declare as variáveis para armazenar o texto original e as 
'Texto depois de wrap it.
Dim strTextPreWrap
Dim strTextPostWrap
Dim intWrapPosition

'testo de exemplo
strTextPreWrap = "The quick brown fox jumps over the lazy dog.  " _
     & "The quick brown fox jumps over the lazy dog again.  " _
     & "The quick brown fox jumps over the lazy dog one more time."

' limite de 40
intWrapPosition = CInt(Request.QueryString("wrap"))
If intWrapPosition = 0 Then intWrapPosition = 40

' Call funcao
strTextPostWrap = WordWrap(strTextPreWrap, intWrapPosition)
%>

<h3>string original :</h3>
<p><code>
<%= AddBrToCrLf(strTextPreWrap) %>
</code></p>

<h3> string wrapped <%= intWrapPosition %> caractere:</h3>
<p><code>
<%= AddBrToCrLf(strTextPostWrap) %>
</code></p>

<%
'Aqui está a função que faz o trabalho
' A palavra wrapp e um comprimento máximo de linha 
'e retorna a 'String acondicionados adequadamente.


Function WordWrap(strTextToBeWrapped, intMaxLineLength)
     Dim strWrappedText           ' Resultado storage

     Dim intLengthOfInput         ' Length do original

     Dim intCurrentPosition       
     Dim intCurrentLineStart      ' começa a linha atual
     Dim intPositionOfLastSpace   ' Último espaço 

     intLengthOfInput = Len(strTextToBeWrapped)

     ' Iniciar ambos, no início
     intCurrentPosition = 1
     intCurrentLineStart = 1

     ' Loop até o fim
     Do While intCurrentPosition < intLengthOfInput
'Se a posição atual é um espaço, 
           'local para uso posterior
          If Mid(strTextToBeWrapped, intCurrentPosition, 1) = " " Then
               intPositionOfLastSpace = intCurrentPosition
          End If

                    If intCurrentPosition = intCurrentLineStart + intMaxLineLength Then
               ' Algumas linhas de depuração
               'Response.Write intCurrentLineStart & "<br />"
               'Response.Write intPositionOfLastSpace & "<br />"
               'Response.Write Trim(Mid(strTextToBeWrapped, intcurrentLineStart, _
               '     intPositionOfLastSpace - intCurrentLineStart + 1)) & "<br />"

               ' Adicione esta última linha de nosso resultado
               strWrappedText = strWrappedText _
                    & Trim(Mid(strTextToBeWrapped, intcurrentLineStart, _
                    intPositionOfLastSpace - intCurrentLineStart + 1)) _
                    & vbCrLf

               ' Redefinir a próxima linha do ponto inicial ao ponto que nós 
utilizados para o último final de uma + 1
               intCurrentLineStart = intPositionOfLastSpace + 1

               ' Remova quaisquer espaços principais que podem bagunçar nossa 
                'contagem de carácter . 
               Do While Mid(strTextToBeWrapped, intCurrentLineStart, 1) = " "
                    intCurrentLineStart = intCurrentLineStart + 1
               Loop
          End If

          ' Incremente o nosso indicador de local
          intCurrentPosition = intCurrentPosition + 1
     Loop

     ' Uma vez que o ciclo termina, antes de adicionar o texto restante, 
      'Adicionar texto restante como a última linha.
     strWrappedText = strWrappedText & Trim(Mid(strTextToBeWrapped, _
          intcurrentLineStart)) & vbCrLf

     ' Retorno ao nosso resultado da linha chamadora
     WordWrap = strWrappedText
End Function

Function AddBrToCrLf(strInput)
     AddBrToCrLf = Replace(strInput, vbCrLf, "<br />" & vbCrLf)
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se é uma solução para você....

Mas eu faria um delimitador na hora do cadastro do texto.

 

Por exemplo [quebra].

 

Na primeira vez que fosse carregar o texto verificaria quantas "quebras" possui o texto (para paginar) e faria um replace para substituir na hora de exibir na tela; sendo que depois da primeira página iria buscar a partir da "quebra" informada por url, sessão ou outra parâmetro. Isso pode ser feito com Mid, InStr ou IndexOf.

 

É uma alternativa. Meio POG mas funcionaria.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada na funcaun acima, e tb existem outras maneiras, mas basicamente você pode contar o numero de caracteres e exibi-los da sua maneira, olha mais este exemplo de conjunto de funções k uso

 

Function Replace_Bad_Words(Data As String) As String


    If Data = "" Then Exit Function
    '-------------------------------------

    'Dirt Words----------------------
    Bad_Word = Array("ass", "bitch", "biatch", "blowjob", "bukkake", "bullshit", "cunt", "cum", "dicked", "dickhead" _
             & "dickweed", "dildo", "fuck", "gangbang", "goddamnit", "handjob", "jackoff", "motherfucker", "motherfucking" _
             & "pissed", "pisses", "---o", "pussy", "pussified", "shit", "titties", "twat")
    '--------------------------------
    
    'Replace Bad Words-----------------
    For Bad = 0 To UBound(Bad_Word)
    Data = Replace(Data, Bad_Word(Bad), String(Len(Bad_Word(Bad)), "*"), , , vbTextCompare)
    Next Bad
    '----------------------------------


    Replace_Bad_Words = Data
    '--------------------------

End Function

Function Rep_Chars(Data As String) As String

    'Replace caracters to allow in database, one to one ratio---
    Data = Replace(Data, Chr(60), Chr(251))
    Data = Replace(Data, Chr(62), Chr(252))
    Data = Replace(Data, Chr(34), Chr(253))
    Data = Replace(Data, Chr(39), Chr(254))
    Data = Replace(Data, Chr(13), Chr(255))
    '-----------------------------------------------------------


    Rep_Chars = Data
    '-----------------

End Function

Function Fix_Chars(Data As String) As String

 
    Data = Replace(Data, Chr(251), "<")
    Data = Replace(Data, Chr(252), ">")
    Data = Replace(Data, Chr(253), """)
    Data = Replace(Data, Chr(254), "'")
    Data = Replace(Data, Chr(255), "<br>")
    '----------------------------------------------------


    Fix_Chars = Data
    '-----------------

End Function

Function Sentence_Continue(Data As String, chrlength As Integer) As String

    If Len(Data) > chrlength Then
    Sentence_Continue = Mid(Data, 1, chrlength) & "..."
    Else
    Sentence_Continue = Data
    End If
    '-----------------------------------------------
    
End Function

Function Count_Words(Data As String) As Integer


    Words = Split(Data, " ")
    Count_Words = Int(UBound(Words) + 1)
    '---------------------------------

End Function

Function Make_Word_Wrap(Data_String As String, Word_Size_Allowed As Integer)


    Counter = 0
    Fixed_Word = ""
    '----------------------------------------


    If Data_String = "" Then Exit Function
    '--------------------------------------------
    

    If Len(Data_String) < Word_Size_Allowed Then
    Make_Word_Wrap = Data_String
    Exit Function
    End If
    '----------------------------------------------------------------

  
    DataOf = Split(Data_String, " ")
    '------------------------------------------------------
    

    For Breakdown = LBound(DataOf) To UBound(DataOf)
    

    If Len(DataOf(Breakdown)) > Word_Size_Allowed Then

    For breakword = 1 To Len(DataOf(Breakdown))
    
    Counter = Counter + 1
    
    'Replace characters that are too long with spaces-------------
    If Counter > Word_Size_Allowed Then
    Fixed_Word = Fixed_Word & " " & Mid(DataOf(Breakdown), breakword, 1)
    Counter = 1
    Else
    Fixed_Word = Fixed_Word & Mid(DataOf(Breakdown), breakword, 1)
    End If
    '-------------------------------------------------------------
    
    Next breakword
    '

    'Set new values and reset word-----------------
    DataOf(Breakdown) = Fixed_Word
    Fixed_Word = ""
    '----------------------------------------------

    End If
    '------------------------------------------------
    
    Next Breakdown
    
    
    For Rebuild = LBound(DataOf) To UBound(DataOf)
    New_String = New_String & DataOf(Rebuild) & " "
    Next Rebuild
    New_String = Mid(New_String, 1, Len(New_String) - 1)
    '-----------------------------------------
    
    Make_Word_Wrap = New_String

End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.