89 messaggi dal 25 novembre 2001
Ho la seguente funzione

function Spezza(strTesto,lngQuanto)
if lngQuanto < len(strTesto) then
Spezza =InStr(lngQuanto,strTesto," ")
Spezza = Left(strTesto,InStr(lngQuanto,strTesto," ")) & "..."
else
Spezza= strTesto
end if
end function

strValore = rec("descrizione")
Response.Write Spezza(strValore,30)

Come mai per alcuni records si visualizza solo "..." ?

Mino

Modificato - misbo - 12 Ago 2002 19:12:35

Mino
10 messaggi dal 01 agosto 2002
Molto probabilmente nel pezzo di testo eccedente la lunghezza di lngQuanto non ci sono spazi, quindi la left ti restituisce una stringa di lunghezza 0...

Ciao

11.886 messaggi dal 09 febbraio 2002
Contributi
Credo perche qualche volta instr restituisce 0, e precisamente quando non trova uno spazio bianco (" ") dopo la posizione che hai specificato. Esempio, vuoi spezzare la frase
"evviva la nutella"

al terzultimo carattere.
La funzione instr cerca da li in poi uno spazio (che non c'è) e perciò restituisce 0.
Sinceramente non ho capito la logica della tua funzione, in realtà è già strano che funzioni, ma non ti si pianta dopo la prima assegnazione:
Spezza =InStr(lngQuanto,strTesto," ")
?
Correggi così:

function Spezza(strTesto,lngQuanto)
if lngQuanto < len(strTesto) then
pos = InStr(lngQuanto,strTesto," ")
if pos = 0 then pos = Len(strTesto)
stringa = Left(strTesto,pos)
if Len(stringa) < Len(strTesto) then stringa = stringa & "..."
Spezza = stringa
else
Spezza= strTesto
end if
end function

strValore = rec("descrizione")
Response.Write Spezza(strValore,30)



-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.