Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Selezionare una parola intera

    Ho uno script che mi serve per bandire le parole poco ortodosse e sostituirle con gli asterischi, ad esempio "fico" viene sostituito con "****".
    Il problema dello script è che prende tutto senza un'analisi logica, quindi anche se io scrivo "grafico" lui mi scrive "gra****" senza lasciare la parola per intero.
    Lo script è questo ed è un pò di tempo che ci sono sopra senza nessun risultato
    codice:
    function badwords(stext)
    stringa = stext
     
    words = array(elenco parole)
     
      for k = lbound(words) to ubound(words)
        stringa = replace(stringa, words(k), string(len(words(k)),"*"))
    	stringa = replace(stringa, ucase(words(k)), string(len(words(k)),"*"))
    	stringa = replace(stringa, lcase(words(k)), string(len(words(k)),"*"))
      next
     
      badwords = stringa
    end function
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  2. #2
    perchè non gli metti gli spazi davanti e in fondo alle parole???
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  3. #3
    codice:
    testo="ciao sono un fico non una pianta ma un fico fico"
    
    banned_word=" fico "
    testo=replace(testo,ucase(banned_word)," **** ")
    il problema è che se uno ti scrive "ciao sono ficoficoficofico" questo non funge piu secondo me dovresti guardare con le regular expression, però qui cedo la parola a willybit

  4. #4
    Se metto gli spazi risolvo in parte il problema perché chi mi scrive tutto unito me lo mette nel

    Cosa sono queste regular expression??
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  5. #5
    questa sub fa al caso tuo:

    codice:
    Sub ParoleVolgari()
        Dim arrMessaggio, arrParole(1), Parola
        messaggio = "Io sono un gran fico, e tu mi stai sul culo (è un esempio)"
        arrParole(0) = "fico"
        arrParole(1) = "culo"
        arrMessaggio = Split(messaggio, " ")
        For i = 0 To UBound(arrMessaggio)
            Parola = TogliCarSpeciali(arrMessaggio(i))
            If Len(Trim(Parola)) > 0 Then
                For k = 0 To UBound(arrParole)
                    If Parola = arrParole(k) Or UCase(Parola) = UCase(arrParole(k)) Or LCase(Parola) = LCase(arrParole(k)) Then
                        arrMessaggio(i) = Replace(arrMessaggio(i), Parola, String(Len(Parola), "*"))
                        Exit For
                    End If
                Next
            End If
        Next
        messaggio = Join(arrMessaggio, " ")
    End Sub
    Function TogliCarSpeciali(StrNome)
        Dim StrCrt
        On Error Resume Next
        StrCrt = ",.@#[]ç°§!&()\/:*?<>|" & Chr(34)
        TogliCarSpeciali = StrNome
        For i = 1 To Len(Trim(StrCrt))
            TogliCarSpeciali = Replace(TogliCarSpeciali, Mid(StrCrt, i, 1), "")
        Next
    End Function
    io le parole volgari le metterei in un database con un delimitatore, tipo il ";" poi recuperi il campo dal database facendo

    codice:
    arrParole(0) = split(rs("parolevolgari"), ";")
    se uno ti scrive ficoficofico, tu inserisci tale parola nel db senza modificare il programma...

    dimmi se ti servono spiegazioni...
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

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.