Newsgroup: it.comp.www.asp
Titolo: Troncare la visualizzazzione del testo in un recordset

<table width="100%" border="0" cellspacing="0" cellpadding="0"
height="310">
      <tr>
        <%
    maxnewsg = 4
    '---Recupero le ultime News dal database e le stampo a video
    Set RSnews = Server.CreateObject("ADODB.RecordSet")
    SQL = " SELECT * FROM News order by data desc"
    Set RSnews=conn.Execute(Sql)
    ' IMPOSTO A 0 IL CONTATORE
    contatore = 0
    If NOT RSNews.EOF Then
        For CicloNews = 1 To MaxNewsg
            If RSNews.EOF Then Exit For
        ' IMPOSTO LA PAGINAZIONE A 2 COLONNE ED N RIGHE
        ' IN FUNZIONE DEL NUMERO DI RECORD PRESENTI NEL DB
        If contatore = 2 Then
            contatore = 0
            Response.Write "</tr><tr>"
        End If
%>
        <td width="1%" height="150">&nbsp;</td>
        <td width="48%" height="110" align="left" valign="top"
class="news_text"><span class="news_title"><%=
RSnews("data")%>&nbsp;&nbsp;<%= RSnews("titolo")%></span><br> <div
align="justify"><a href="news.asp?id=66"><img
src="img/news/small/general.jpg" width="81" height="81" border="0"
align="left" valign="top" class="class="news_text" hspace=12
v:shapes="_x0000_s1026"/>
            <%=Replace(RSnews("Testo")& "",chr(10),"<br
/>")%></a></div></td>
        <td width="1%" height="150">&nbsp;<br></td>
        <%
            RSnews.MoveNext
             contatore = contatore + 1
        Next
        RSNews.Close
        Set RSnews = Nothing
        Conn.Close
        Set Conn  = Nothing
        end if
        %>
      </tr>
    </table>
ho l'altezza della table impostata a 310
però ho il testo che supera questa altezza per cui il risultato del campo
<%=Replace(RSnews("Testo")& "",chr(10),"<br />")%> dovrebe rimanere dentro
quell'altezza a la frase finire con ...
ad esempio
il libro è sul tavolo ...
naturalmente clikkando il link va in una altra pagina e si legge tutto
l'articolo completo
per cui chiedo come posso troncare il testo a livello visuale?

 quell'altezza a la frase finire con ...
Puoi racchiudere il campo dentro un div e mettergli un overflow:hidden:
 
http://www.w3.org/TR/REC-CSS2/visufx.html#overflow
Ma per i 3 puntini la vedo male, mi sa che devi tagliare "a spanne"
server-side.
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 quell'altezza a la frase finire con ...
Opps... m'e' partita la mail per sbaglio...
aggiungi questa funzione alla pagina asp
Function TextCut(Text,TextLength)
 TextToProcess = Text
 If Len(TextToProcess) < TextLength Then
  TextCut = TextToProcess
 Else
  CuttedText = Mid(TextToProcess,1,TextLength)
  For a = (TextLength + 1) To Len(TextToProcess)
   If Mid(TextToProcess,a,1) = " " Then
    CuttedText = CuttedText & "..."
    Exit For
   Else
    CuttedText = CuttedText & Mid(TextToProcess,a,1)
   End If
  Next
  TextCut = CuttedText
 End If
End Function
e poi stampi il testo in questo modo :
<%=TextCut(Replace(RSnews("Testo")& "",chr(10),"<br />"),[NumeroCaratteri]%>
[NumeroCaratteri] ovviamente lo sostituisci con un valore tipo 40, fa un po' 
di prove in caso.
questa funzione appena trova uno spazio, taglia la frase e ci mette dei 
puntini di sospensione
(nel caso in cui la frase sia piu' lunga della lunghezza impostata)
ciaps 

 per cui chiedo come posso troncare il testo a livello visuale?
Stabilisci il numero massimo di caratteri da visualizzare (es.200); poi
prendi tutti i caratteri fino al primo spazio dopo il 200mo carattere.
Es.
Response.Write Left(RSnews("Testo"),instr(200,RSnews("Testo")," "))
Ciao.
-- 
Sergio MAZZA