cari ragazzi..certo che la vita è b*st*rda..ci sono mesi che i problemi ti evitano.. e momenti che te ne arrivano uno dietro l'altro..

Allora il problema è questo:

In un campo MEMO del DB inserisco un testo con all'interno la possibilità di inserire il comando Bold (<b>) Italic(<i>) e Underline (u)..

Quando vado a visualizzare a video il testo, ho la necessità di "spaccarlo" in 2 trance se questo supera un tot max di caratteri, per fare ciò utilizzo questo pezzo di codice (che mi era stato gentilmente suggerito da un'utente del forum):

<%
str = rs("descrizione")
lung_descrizione = len(str)

if lung_descrizione >= 1050 then

if messaggio <> "2" then

arrStr=split(str, " ")
'divide tutte le parole del testo separate da uno spazio e le mette in un vettore

for i = LBound(arrStr) To UBound(arrStr)
response.write arrStr(i) &" "
'riscrive tutte le parole presenti nel vettore

if i = 150 then exit for 
'alla ventesima si ferma ed esce dal ciclo (numero che si può cambiare a piacimento)

next

response.write "<A href='scheda.asp?id="& id &"&messaggio=2&numero="& numero &"' onmouseover=""self.status='Leggi il seguito'; return true"" onmouseout=""self.status=''; return true"" target='_self'><b>...(continua)</b></a>"


else

arrStr=split(str, " ")
'divide tutte le parole del testo separate da uno spazio e le mette in un vettore

response.write "<A href='scheda.asp?id="& id &"&numero="& numero &"' onmouseover=""self.status='Torna indietro'; return true"" onmouseout=""self.status=''; return true"" target='_self'><B>(torna)...</B></a>"

for i = 151 To UBound(arrStr)
response.write arrStr(i) &" "
'riscrive tutte le parole presenti nel vettore

next


end if

else

response.write str

end if
%>


il problema mi arriva quando imposto (ad esempio) il carattere BOLD dal primo carattere all'ultimo..

Quando vado a dividere il testo..la prima parte me la legge giusta (in grassetto)..ma la sconda no..me la visualizza con il carattere normale..

Come posso fare per "tenere" lo stesso tipo in "memoria"..?
Spero di essermi spiegato bene!?!
12 messaggi dal 25 giugno 2002
www.fallasa.it
qst è un gran casino quello che ti consiglio io è usare uno splittingcoi paragrafi per paginarlo. In quanto si presuppone che in ogno paragrafo ci sia la stesa formattazione base e che da un paragrafo all'altro nn si può ereditare la formattazione dei tag B, U, I perché sono tag INLINE, quindi vanno necessariamente ripetuti.
Anche questa però è una soluzione parziale che mette una pezza + che risolvere il vero problema.

I dilettanti costruirono l'Arca, i professionisti il Titanic.
grazie nunkij..
ma ho risolto in questo modo ..(premetto che non è farina del mio sacco):

<%
str = rs("descrizione")
lung_descrizione = len(str)

if lung_descrizione >= 1050 then

if messaggio <> "2" then
TagI = 0
TagB = 0
TagU = 0

arrStr=split(str, " ")
'divide tutte le parole del testo separate da uno spazio e le mette in un vettore


for i = LBound(arrStr) To UBound(arrStr)

response.write arrStr(i) &" "
'riscrive tutte le parole presenti nel vettore

if LCase(InStr(arrStr(i),"<i>")) then
TagI = TagI +1
end if

if LCase(InStr(arrStr(i),"</i>")) then
TagI = TagI -1
end if 

if LCase(InStr(arrStr(i),"<b>")) then
TagB = TagB +1
end if
if LCase(InStr(arrStr(i),"</b>")) then
TagB = TagB -1
end if

if LCase(InStr(arrStr(i),"<u>")) then
TagU = TagU +1
end if

if LCase(InStr(arrStr(i),"</u>")) then
TagU = TagU -1
end if

if i = 150 then exit for 
'alla 150esima si ferma ed esce dal ciclo (numero che si può cambiare a piacimento)

next

'Se tagI > 0 allora ho dei tag aperti che devo chiudere.
if TagI > 0 then
'creo una nuova variabile da decrementare ogni volta che chiudo un tag.
CloseTagI = TagI
'finchè questa variabile non arriva a 0, continuo a chiudere i tag.
'Devo usare una nuova variabile perchè la tagI mi servirà nella seconda
'pagina per riaprire i tag
Do while not CloseTagI = 0
Response.Write ("</i>")
CloseTagI = CloseTagI -1
loop
end if

'Se tagB > 0 allora ho dei tag aperti che devo chiudere.
if TagB > 0 then
'creo una nuova variabile da decrementare ogni volta che chiudo un tag.
CloseTagB = TagB
'finchè questa variabile non arriva a 0, continuo a chiudere i tag.
'Devo usare una nuova variabile perchè la tagB mi servirà nella seconda
'pagina per riaprire i tag
Do while not CloseTagB = 0
Response.Write ("</b>")
CloseTagB = CloseTagB -1
loop
end if

'Se tagU > 0 allora ho dei tag aperti che devo chiudere.
if TagU > 0 then
'creo una nuova variabile da decrementare ogni volta che chiudo un tag.
CloseTagU = TagU
'finchè questa variabile non arriva a 0, continuo a chiudere i tag.
'Devo usare una nuova variabile perchè la tagU mi servirà nella seconda
'pagina per riaprire i tag
Do while not CloseTagU = 0
Response.Write ("</u>")
CloseTagU = CloseTagU -1
loop
end if

response.write "<A href='scheda.asp?id="& id &"&messaggio=2&numero="& numero &"&TI="&TagI&"&TB="&TagB&"&TU="&TagU&"' onmouseover=""self.status='Leggi il seguito'; return true"" onmouseout=""self.status=''; return true"" target='_self'><b>...(continua)</b></a>"

else

TagI = Request.querystring("TI")
TagB = Request.querystring("TB")
TagU = Request.querystring("TU")

arrStr=split(str, " ")
'divide tutte le parole del testo separate da uno spazio e le mette in un vettore

response.write "<A href='scheda.asp?id="& id &"&numero="& numero &"' onmouseover=""self.status='Torna indietro'; return true"" onmouseout=""self.status=''; return true"" target='_self'><B>(torna)...</B></a>"

if TagI > 0 then
'Finchè tagI non diventa 0, riapro i tag specifici
Do while not TagI = 0
Response.Write ("<i>")
TagI = TagI -1
loop
end if

if TagB > 0 then
'Finchè tagB non diventa 0, riapro i tag specifici
Do while not TagB = 0
Response.Write ("<b>")
TagB = TagB -1
loop
end if

if TagU > 0 then
'Finchè tagU non diventa 0, riapro i tag specifici
Do while not TagU = 0
Response.Write ("<u>")
TagU = TagU -1
loop
end if

for i = 151 To UBound(arrStr)

response.write arrStr(i) &" "
'riscrive tutte le parole presenti nel vettore


next

end if

else

response.write str

end if
%>



Modificato da deejayp il 21 marzo 2004 15.00 -

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.