Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    241

    rendere questa funzione ricorsiva

    questa funzione serve a processare alcuni messaggi postati da utenti ed evitare che alla fine siano presenti spazi o a capo inutili

    funziona solo per l'ultimo elemento, ho provato a renderla ricorsiva (riga commentata) ma mi da come errore "Out of stack"

    dov'è che sbaglio?

    codice:
     
    Function right_trim_post(stringa)
    	
    	dim RTP_temp
    	
    	RTP_temp = stringa
    	
    	If Right(RTP_temp, 6) = "
    " then RTP_temp = Left(RTP_temp, (Len(RTP_temp) - 6))
    	If Right(RTP_temp, 6) = "" then RTP_temp = Left(RTP_temp, (Len(RTP_temp) - 6))
    	If Right(RTP_temp, 1) = " " then RTP_temp = Left(RTP_temp, (Len(RTP_temp) - 1))
    	
    '	RTP_temp = right_trim_post(RTP_temp)
    
    	
    	right_trim_post = RTP_temp
    
    End Function

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    quando fai una funzione ricorsiva deve esserci una condizione di uscita... sinceramente non riesco a capire cosa vuoi fare di preciso tu :master:

  3. #3
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,854
    meglio un loop dentro la funzione che richiamarla dentro la funzione e comunque ti basta aggiungere un
    if not right..etcetc<>" " or if right..etcetc<>"
    " then
    RTP_temp = right_trim_post(RTP_temp)
    end if
    la funzione terminerà quando la stringa non ha piu br o spazi.
    cmq ripeto molto meglio un loop

  4. #4
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    241
    per una serie di motivi ho la necessità di farlo tramite una funzione di questo tipo

    l'ho riscritta seguendo i consigli che mi avete dato, però adesso... mi elimina tutta la stringa

    codice:
    ciao = "ciao 
      
    "
    
    Response.Write(right_trim_post(ciao))
    
    Function right_trim_post(stringa)
    	
    	dim RTP_temp
    	RTP_temp = stringa
    	
    	If Right(RTP_temp, 6) = "
    " OR Right(RTP_temp, 6) = "&amp;nbsp;" Then 
    		RTP_temp = Left(RTP_temp, (Len(RTP_temp) - 6))
    		RTP_temp = right_trim_post(RTP_temp)
    	ElseIf Right(RTP_temp, 1) = " " Then
    		RTP_temp = Left(RTP_temp, (Len(RTP_temp) - 1))
    		RTP_temp = right_trim_post(RTP_temp)
    	Else
    		right_trim_post = RTP_temp
    	End If
    
    End Function

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    s0r4... tu cosa vuoi fare di preciso? Eliminare tutti i
    e i &nbsp; ?

  6. #6
    Utente bannato
    Registrato dal
    Nov 2004
    Messaggi
    241
    risolta!
    era un'errore stupidissimo ma tanto stupido che non ci arrivavo


    ho un'applicazione che permette agli utenti registrati di inserire messaggi in un blog, ma alcuni mettevano anche delle righe vuote alla fine e voleo evitarlo

    per adesso funziona solo se gli passo la stringa io, mi sa che deve intercettare anche gli "a capo"

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.