Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Visualizzare n parole

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    4

    Visualizzare n parole

    Ciao a tutti!

    Ho cercato nel forum quello che mi serviva, ma essendo per nulla capace, non sono riuscito ad adattarlo alle mie esigenze.

    Vi scrivo il codice cosi` magari vi e` piu` di aiuto delle mie spiegazioni:

    SQL="SELECT Distinct TOP 2 Oggetti.OggettoID, Oggetti.Titolo, Oggetti.Testo, Oggetti.URLdescindice, categorie.Nome, Oggetti.Data, Oggetti.urldescindice FROM categorie INNER JOIN Oggetti ON categorie.CtgID = Oggetti.CategoriaID ORDER BY oggettoID DESC"
    set conntemp=server.createobject("adodb.connection")
    conntemp.open DSN
    set rstemp=conntemp.execute(SQL)
    howmanyfields=rstemp.fields.count -1

    do while not rstemp.eof
    for i = 6 to howmanyfields step 7


    oggID=rstemp(i-6)
    titolo=rstemp(i-5)
    testo=rstemp(i-4)
    urldesc=rstemp(i-3)
    nome=rstemp(i-2)
    data=rstemp(i-1)
    urllink=rstemp(i)

    %>
    <table border="0" cellPadding="0" cellSpacing="0" width="50%">
    <tr>
    <td>
    <%=testo%>


    - <%=data%>
    </td>
    </tr>
    <% next
    rstemp.movenext
    loop %>
    </table>
    Praticamente, quando richiamo

    <%=testo%>
    vorrei inserire un qualcosa che mi permetta di visualizzare un numero predefinito di caratteri, possibilmente evitando che la parola si spezzi a meta`.

    Grazie!

    RasAlex

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    Utilizza questa funzione
    codice:
    function TagliaStringa(stringa,charConsentiti,delimitatore)
    chars = charConsentiti
    'Elimino gli spazi iniziali e finali
    str = Trim(stringa)
    parolaStralunga = false
    'Se la stringa è + lunga del numero di caratteri allora tronca senno non serve
    if len(str) > chars then 
    'Controllo se alla posizione indicata dai caratteri consentiti si trova uno spazio
    tmpChar = mid(str,chars-1,1)
    while not tmpChar = Chr(32) 'Spazio 
    'se non lo è controllo il carattere precedente e via via nel loop
    chars = chars - 1
    tmpChar = mid(str,chars-1,1)
    ' nel caso credo improbabile che non ci sia nemmeno uno spazio esco dal loop e stampo [CharConsentiti] caratteri
    if chars < 0 then 
    tmpChar = Chr(32) 
    'parolaStralunga = true
    end if 
    wend
    end if 
    'Se vuota restituisce vuoto
    if str = "" then
    TagliaStringa = "" 
    'Se minore dei caratteri consentiti non serve tagliare
    elseif len(stringa) <= chars then
    TagliaStringa = str
    else
    'Altrimenti taglia 
    if chars > 0 then 
    TagliaStringa = Left(str,chars-1) & delimitatore
    else 'nel caso sia un unica parola di [CharConsentiti] caratteri
    TagliaStringa = Left(str,charConsentiti-1) & delimitatore
    end if 
    end if 
    end function

    La funzione taglia la stringa inserita come primo parametro alla lunghezza espressa dal secondo parametro ed aggiunge il delimitatore espresso dal 3
    esempio:
    FraseLunga = "mamma mia come è lunga questa frase sara' meglio che la tagli un pochino senno mi scombina tutto il lauyout del sito?"
    Response.Write(TagliaStringa(fraseLunga,50,"..."))
    output = "mamma mia come è lunga questa frase sara' meglio ..."

    nel tuo caso (ho messo 300 caratteri)
    <%=TagliaStringa(testo,300,"...continua")%>

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    4
    Ti ringrazio molto per la risposta, kluster!

    Sempre a causa della mia incompetenza, pero`, non sono riuscito a farlo funzionare.

    In compenso, nel mentre che aspettavo una risposta, ho trovato un codice che ha funzionato

    codice:
    [...]
    testo=rstemp(i-4)
             	iMaxChar = 1
    		 	sResult = testo
    		 		If Len(sResult) > iMaxChar Then
    		 			If InStr(iMaxChar, sResult, " ") > 0 Then
    		 			sResult = Left(sResult, InStr(iMaxChar, sResult, " ")) & "..."
    		 		End If
    		 	End If
    
    <%Response.Write testo & "
    " & sResult%>
    l`unica cosa che non capisco e` perche` che io inserisca 1 o 20 in iMaxChar , la lunghezza della stringa che mi visualizza risulta praticamente uguale, e abbastanza lunga (di sicuro non 1 o 20 caratteri); e se provo ad inserire "200", per esempio, mi replica la stessa stringa due volte.
    Avrei quindi bisogno di viusalizzare meno caratteri, ma non saprei che altro modificare.

    Grazei!

    RasAlex

  4. #4
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    non funziona perchè nel post
    la funnzione è stata formattata
    function TagliaStringa(stringa,charConsentiti,del
    imitatore)

    mentre è tutto su una riga
    codice:
    function  TagliaStringa(stringa,charConsentiti,delimitatore)
    [EDIT] niente ho provato in modifica ma continua a formattarla a capo

    cmq scrivi tutto su una riga [/EDIT]

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    4
    L`avevo notato anch`io, e avevo provato ad inserirla normalmente su una riga ("delimitatore"), ma il risultato non cambiava...

    Secondo me e` perche` non so dove inserire la tua funzione all`interno della pagina...

    RasAlex

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    4
    Questo e` l`errore che mi restituisce

    Microsoft VBScript compilation error '800a03ea'

    Syntax error

    /ultimi_campi.asp, line 31

    function TagliaStringa(stringa,charConsentiti,delimitatore)
    ^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.