asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 60166
ASPCode.it - Store

  > > Tips

Limitatore 'intelligente' di stringhe
di Alessandro Tediosi

Data di pubblicazione: 13/04/2004        Voto della community: 4,77 (Votanti: 10)

Quanti di voi hanno avuto la necessitÓ di ridurre la lunghezza di una stringa, magari all'interno di una cella, e hanno utilizzato la funzione Left()? Il problema Ŕ che spesso le parole vengono troncate a metÓ ed esteticamente il risultato ottenuto non Ŕ molto gradevole alla vista... L'ideale sarebbe che la stringa venisse troncata al primo spazio disponibile andando a ritroso dal punto in cui si effettua il troncamento, magari concatenata ai classici tre puntini (...) di sospensione.
A questo scopo ho ideato questa semplice funzione che qui presento:

<%
Function limitaCaratteri(frase, lunghMax)

  dimMax = LEN(frase)

  if dimMax > lunghMax then
    estrattoBreve = ""
    ultimoCarattere = "a"
    contatore = lunghMax

    while ultimoCarattere <> " "
      estrattoBreve = LEFT(frase,contatore)
      ultimoCarattere = RIGHT(estrattoBreve,1)
      contatore = contatore - 1
      if contatore = 0 then
        ultimoCarattere = " "
      end if
    wend

    if contatore <> 0 then
      estrattoBreve = LEFT(frase,contatore) & "..."
    else
      estrattoBreve = LEFT(frase,lunghMax)
    end if

  else

    estrattoBreve = frase

  end if

  limitaCaratteri = estrattoBreve

End Function
%>

Per praticitÓ conviene riportarle questa funzione all'interno di un file di inclusione che richiameremo in ogni pagina in cui intendiamo utilizzarla:

<!-- #include file="include/limitatoreCaratteri.asp" -->

La funzione deve venire richiamata passandole due parametri: la stringa da abbreviare e la misura massima che essa dovrÓ avere.
Esempio:

<TD>
<%=limitaCaratteri("Stringa da abbreviare con puntini di sospensione", 22)%>
</TD>

La funzione controlla se la stringa eccede il limite di caratteri e, in tal caso, cerca il primo spazio presente da destra verso sinistra partendo dalla posizione relativa al limite di caratteri specificato; una volta trovato lo spazio, taglia la stringa con la funzione Left() aggiungendo i tre puntini di sospensione.

Stringa da abbreviare...

Eccezione Ŕ fatta solo se non vengono trovati spazi; in qual caso la stringa viene comunque troncata alla posizione specificata.
Esempio:

<TD>
<%=limitaCaratteri("Stringa da abbreviare con puntini di sospensione", 5)%>
</TD>

Nella cella riporterÓ:

Strin




Utenti connessi: 60166