23 messaggi dal 01 maggio 2006
Lo script seguente prende la stringa abcdefg e la suddivide in 3 righe: abc def g

Ora, se resto è uguale a 0? succede una cosa strana:

al posto di abcdefg (7caratteri) inseriamo abcdef (6 caratteri) in modo che il resto sia uguale a zero e le righe siano solo2 (array(0) e array (1).

Lo script in questo caso mi crea un terzo array(2) vuoto:
ARRAY(0):abc
ARRAY(1):def
ARRAY(2)

Come mai?


dim testo,maxLen 
testo_abstract="abcdefg"


maxLen=3
lentotale=Len(testo_abstract)
righe=Int(lentotale/maxlen)
resto=lentotale-(maxLen*righe)


For x=0 To righe
If testo="" Then
testo=Mid(testo_abstract,x+1,maxLen) & "<br>"
Else
testo=testo & Mid(testo_abstract,(maxLen*x)+1,maxLen) & "<br>"
End If
Next


If resto > 0 Then
For y=0 To resto
testo=testo & Mid(testo_abstract,(maxLen*(x+y))+1,maxLen) & "<br>"
Next
End If


Dim MioArray 
MioArray = Split (testo, "<br>", -1, 1) 
testo=""


conta=righe




if conta>=0 then response.write("arr1: "&MioArray(0))
RESPONSE.WRITE("<BR>")

if conta>=1 then response.write("arr1: "&MioArray(1))
RESPONSE.WRITE("<BR>")
if conta>=2 then response.write("arr2: "&MioArray(2))
RESPONSE.WRITE("<BR>")
if conta>=3 then response.write("arr3: "&MioArray(3))
Hai provato a fare un debug per vedere cosa succede ad ogni passaggio?

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
23 messaggi dal 01 maggio 2006
se sostituisco

For x=0 To righe-1

a

For x=0 To righe

alla fine viene creato un br in meno

ma ho sempre un array in più probabilmente per il br ad ogni fine frase di 3(maxLen).

Credo che dovrei eliminare il br all'untima riga creata, sapresti dirmi se l'idea è giusta e come fare?
Se facendo così funziona allora va bene.
Se sai che l'ultimo elemento dell'array non ti interessa potresti rimuoverlo così hai l'array esattamente degli elementi che ti servono.

Alessio Arrigoni - CONSULENTE INFORMATICO
https://www.alessioarrigoni.it
https://www.assistenzapccomo.it
23 messaggi dal 01 maggio 2006
Purtroppo l'ultimo elemento dell'array risulta vuoto solo quando la variabile resto è uguale a 0
674 messaggi dal 12 maggio 2001
www.idioteca.it
Hai provato a mettere il <br> prima del testo e non dopo?

Che poi... stavo pensando... perchè complicarti la vita a ricreare una stringa per poi fare uno split?
Perchè non carichi direttamente i dati nell'array?
In ogni caso, il tuo problema è dovuto al fatto che vai oltre con i for, metti - 1 e i <br> prima e dovresti risolvere.

La butto lì veloce... verifica se c'è qualche imprecisione...

dim testo,maxLen 
testo_abstract="abcdefg"


maxLen=3
lentotale=Len(testo_abstract)
righe=Int(lentotale/maxlen)
resto=lentotale-(maxLen*righe)


For x=0 To righe - 1
If testo="" Then
testo=Mid(testo_abstract,x+1,maxLen)
Else
testo=testo & "<br>" & Mid(testo_abstract,(maxLen*x)+1,maxLen)
End If
Next


If resto > 0 Then
For y=0 To resto - 1
testo=testo & "<br>" & Mid(testo_abstract,(maxLen*(x+y))+1,maxLen)
Next
End If


Dim MioArray 
MioArray = Split (testo, "<br>", -1, 1) 
testo=""


conta=righe

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.