Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Funzione ASP ricorsiva.

    Ho eseguito delle correzioni a causa di errori restituitimi da IIS:

    codice:
    <%
    Function dividiStringa(sStr, iInizio, iProg)
    
    	Dim sTesto 
    	Dim lLenght
    	Dim sFinal 
    	
    	If Len(sStr) > 50 Then
    	   If Mid(sStr, 51, 1) = " " Then
    		  sFinal = Mid(sStr, 1, 50)
    		  sTesto = sFinal & Mid(sNota, 52, Len(sStr) - 51)
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   Else
    		  lLenght = InStrR(Mid(sStr, 1, 50), " ")
    		  If Not lLenght = 0 Then
    			 sFinal = sFinal & Mid(sStr, 1, lLenght)
    			 sTesto = Mid(sStr, lLenght + 1, Len(sStr) - lLenght)
    		  Else
    			 sFinal = sFinal & Mid(sStr, 1, 50)
    			 sTesto = Mid(sNota, 50 + 1, Len(sStr) - 50)
    		  End If
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   End If
    	ElseIf Len(sStr) <= 50 And Len(sStr) <> 0 Then
    		 sFinal = sFinal & sStr
    	End If
    	
    	response.write(sFinal)
    
    End Function
    %>
    Però adesso mi dice:

    codice:
    Tipo non corrispondente: 'InStrR'
    /tag.asp, line 51
    La linea 51 è la seguente:

    codice:
    lLenght = InStrR(Mid(sStr, 1, 50), " ")
    [EDIT]: ho sostituito con InstrRev tutto ok, a parte il fatto che prima di invocare la funzione eseguo una serie di replace sulle emoticons che possono essere digitate e a seconda il punto , mi spezza la stringa corrispondente alla vosualizzazione dell'immagine, stampandomi l'html della stessa, come evito ciò?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  2. #2
    Basta che levi i vari As String, As Integer, As qualcosa'altro...

  3. #3
    InStrRev

  4. #4
    Sono riuscito a farla funzionare, solo che mi restituisce la stringa al contrario di come viene scritta, perchè?

    codice:
    <%
    Function dividiStringa(sStr, iInizio, iProg)
    
    	Dim sTesto 
    	Dim lLenght
    	Dim sFinal 
    
    	If Len(sStr) > 20 Then
    	   If Mid(sStr, 21, 1) = " " Then
    		  sFinal = Mid(sStr, 1, 20)
    		  sTesto = Mid(sNota, 22, Len(sStr) - 21) & "
    "
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   Else
    		  lLenght = InStrRev(Mid(sStr, 1, 20), " ")
    		  If Not lLenght = 0 Then
    			 sFinal = Mid(sStr, 1, lLenght) & "
    "
    			 sTesto = Mid(sStr, lLenght + 1, Len(sStr) - lLenght)
    		  Else
    			 sFinal = Mid(sStr, 1, 20) & "
    "
    			 sTesto = Mid(sNota, 20 + 1, Len(sStr) - 20)
    		  End If
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   End If
    	ElseIf Len(sStr) <= 20 And Len(sStr) <> 0 Then
    		 sFinal = sFinal & sStr
    	End If
    	
    	response.write(sFinal)
    
    End Function
    
    response.write(dividiStringa("Ciao a tutti, come va? Proviamo a fare questa prova di spezzatura.",1,1))
    
    %>
    Non capisco dove sbaglio! :master:

    Mi ritorna questo:

    codice:
    spezzatura.questa prova di 
    va? Proviamo a fare 
    Ciao a tutti, come 


    --------------------------------------------------------------

    [EDIT]: da un rapido debug il ciclo è questo:

    codice:
    2° sFinal - qui vale : Ciao a tutti, come 
    2° sFinal - qui vale : va? Proviamo a fare 
    2° sFinal - qui vale : questa prova di 
    4° sFinal - qui vale : spezzatura.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    codice:
    sFinal = sStr & sFinal

  6. #6
    Scusami, a quale punto della funzione ti riferisci?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    codice:
    ElseIf Len(sStr) <= 20 And Len(sStr) <> 0 Then
             sFinal = sStr & sFinal
    End If

  8. #8
    Ho provato la tua soluzione, ma non mi risolveva il problema.

    Ho risolto alla fine così:

    codice:
    <%
    Function dividiStringa(sStr, iInizio, iProg)
    
    	Dim sTesto 
    	Dim lLenght
    	Dim sFinal 
    
    	If Len(sStr) > 20 Then
    	   If Mid(sStr, 21, 1) = " " Then
    		  sFinal = Mid(sStr, 1, 20) '& sFinal
      	  	  response.write(sFinal) 
    		  sTesto = Mid(sNota, 22, Len(sStr) - 21) & "
    "
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   Else
    		  lLenght = InStrRev(Mid(sStr, 1, 20), " ")
    		  If Not lLenght = 0 Then
    			 sFinal = Mid(sStr, 1, lLenght) & "
    " '& sFinal
      		 	 response.write(sFinal) 
    			 sTesto = Mid(sStr, lLenght + 1, Len(sStr) - lLenght)
    		  Else
    			 sFinal = Mid(sStr, 1, 20) & "
    " '& sFinal
    		  	 response.write(sFinal) 
    			 sTesto = Mid(sNota, 20 + 1, Len(sStr) - 20)
    		  End If
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   End If
    	ElseIf Len(sStr) <= 20 And Len(sStr) <> 0 Then
    		 sFinal = sStr '& sFinal
      	 	 response.write(sFinal) 
    	End If
    
    End Function
    
    response.write(dividiStringa("Ciao a tutti, come va? Proviamo a fare questa prova di spezzatura.",1,1))
    
    %>
    Stampando ogni occorrenza della stringa spezzata!
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  9. #9
    Non funziona ancora come dovrebbe!

    Non capisco perchè sulla stringa che gli passo in input, non la stampa tutta, con la dovuta interruzione.

    codice:
    <%
    Function dividiStringa(sStr, iInizio, iProg)
    
    	Dim sTesto 
    	Dim lLenght
    	Dim sFinal 
    
    	If Len(sStr) > 20 Then
    	   If Mid(sStr, 21, 1) = " " Then
    		  sFinal = Mid(sStr, 1, 20) 
      	  	  response.write(sFinal)
    		  sTesto = Mid(sNota, 22, Len(sStr) - 21) & "
    "
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   Else
    		  lLenght = InStrRev(Mid(sStr, 1, 20), " ")
    		  If Not lLenght = 0 Then
    			 sFinal = Mid(sStr, 1, lLenght) & "
    " 
     		 	 response.write(sFinal)
    			 sTesto = Mid(sStr, lLenght + 1, Len(sStr) - lLenght)
    		  Else
    			 sFinal = Mid(sStr, 1, 20) & "
    " 
    		  	 response.write(sFinal)
    			 sTesto = Mid(sNota, 20 + 1, Len(sStr) - 20)
    		  End If
    		  iProg = iProg + 1
    		  dividiStringa sTesto, 1, iProg
    	   End If
    	ElseIf Len(sStr) <= 20 And Len(sStr) <> 0 Then
    		 sFinal = sStr & sFinal 
      	 	 response.write(sFinal)
    	End If
    
    End Function
    
    response.write(dividiStringa("ciao ma vi mancano i vecchi telefilms",1,1))
    %>
    Stampa solamente : "ciao ma vi mancano i"...
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  10. #10
    sTesto = Mid(sNota, 22, Len(sStr) - 21) & "
    "

    sNota non è mai valorizzata... immagino volessi utilizzare sStr.
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

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.