Newsgroup: it.comp.www.asp
Titolo: inibire la visualizzazioni di certi dati del database sulla pagina

Salve a tutti , nel momento in cui la mia pagina asp va a leggere in un
database un campo memo dove è presente un testo es" ciao mi chiamo paolo
sono di na il mio numero è 333555444" vorrei che nella pagina che visualizza
il contenuto di questo determinato campo del database dove sta l indicazione
333 venga sostituito con xxx, va bene anche se l'intera parola dove è
contenuto il 333 venga trasformata in xxx come posso impostare il codice asp
.è gradito anche un esempio se è possibile
grazie anticipatamente
Paolo

 
fai un replace di 333 con xxx cosě
stringa = Replace(stringa, "333", "xxx")
ciao
-- 
Kappa [co-mod ICWA]
ka...@webngo.net
www.webngo.net
www.filmscoop.it

Response.Write Replace(rsTemp("CAMPO_MEMO"),"333","xxx")
--
:: Fate i bravi e non clonate le pecore!
:: Distractly yours... 
man...@ufologia.net

 contenuto il 333 venga trasformata in xxx
stringa = Replace(stringa, "333", "xxx")
--
Filippo Di Blasi 
filippo...@puntoinformatico.it
http://puntoinformatico.it
 <-- E-shop informatico
http://puntoinformatico.it/usato
 <-- Usato
http://puntoinformatico.it/servizi
 <-- Servizi web
http://puntoinformatico.it/news
 <-- News & Glossario

 Response.Write Replace(rsTemp("CAMPO_MEMO"),"333","xxx")
Non va bene!
Lui intende sostituire un QUALUNQUE numero con xxx (come fanno
gli operatori telefonici sulla bolletta).
Io ti consiglio di farti una funzioncina che cerca nel testo, carattere per
carattere, le cifre numeriche, e poi sostituirle con "x".
In pratica:
inizio ciclo: da 1 a len(stringa)
    se carattere = numero allora
        sostituisci numero con "x"
next
Nixs

         sostituisci numero con "x"
Come lo fai?
Forse a quel punto invece di fare un ciclo per la lunghezza della stringa
(che essendo un campo memo potrebbe essere notevole), forse conviene fare un
ciclo da 1 a 10 con
strTesto = rsTemp("CAMPO_MEMO")
For intCont = 0 to 9
strTesto = Replace(strTesto,CStr(intCont),"x")
Next
Perň siamo al problema iniziale, che TUTTI i numeri vengono sostituiti...
secondo me la lista dei prefissi degli operatori rimane la scelta migliore,
se non c'č modo di "costringere" l'input dell'utente entro certi parametri.


 se non c'è modo di "costringere" l'input dell'utente entro certi
parametri.
La soluzione dovrebbe essere di fare l'analisi non carattere per carattere,
ma parola per parola (trovando cioè gli spazi).
Condizione:
SE la parola analizzata è costituita tutta da cifre OR è
presente anche un carattere "-", "/", "." AND è maggiore di
8 la sua lunghezza (difficile che iu uno scritto discorsivo ci
siano numeri non di telefono tanto lunghi!), ALLORA opera
la sostituzione delle prime (o ultime) tre cifre con "xxx".
Nixs

 ha scritto nel messaggio
news:cfJB9.6651$Ka3.2...@twister1.libero.it...


Ok era piena di schifo.. :) Solo che pensavo di dover uscire e l'ho fatta al
volo. Prometto che la prossima volta la provo prima :P
Questa funziona ;)
Function strNoTel(strTesto,intNumCons) ' #### intNumCons, su quanti numeri
consecutivi intervenire
    Dim intCont1, strTemp, strTempChar
    If intNumCons < 3 Then IntNumCons = 3 ' #### Minimo 3 ####
    While intCont1 <=  Len(strTesto)
        intCont1 = intCont1 + 1
        strTempChar = Mid(strTesto,intCont1,1)
        If InStr("0123456789",strTempChar) <> 0 Then
            strTemp = strTemp & strTempChar
        Else
            If Len(strTemp) >= intNumCons Then
               strTesto = Replace(strTesto,strTemp,"xxx" &
Right(strTemp,Len(strTemp) - 3))
            End If
 strTemp = ""
        End If
     Wend
    strNoTel = strTesto
End Function


 Questa funziona ;)
Perché non utilizzo le regular expression? Risparmi un sacco di linee di
codice ed hai controllo più completo:
<%
frase="ciao mi chiamo paolo sono di na il mio numero è 333555444."
Dim RegEx
Set RegEx = New RegExp
RegEx.Global = True
RegEx.IgnoreCase = True
rPat = "\d{9}" ' Modifica tutte le sequenze di 9 numeri
regEx.Pattern = rPat
Set matches = regEx.Execute(frase)
for each match in matches
 ' La linea seguente serve per modificare la parola
 ' da mascherare. In queso caso maschera i caratteri "333"
 ' in "xxx".
 parola=replace(match.Value,"333","xxx")
 frase=replace(frase,match.Value,parola)
 next
Response.Write (frase)
%>
--
AZ

Ci stavo pensando ieri, perň non conosco il linguaggio e cosě ho optato per
la soluzione "algoritmica" ;)
Perň, dato che ancora mi sfugge un pň il senso, perchč metti "333" come
numero da sosituire?
Questa dovrebe essere una serie qualunque di numeri diciamo di 9 cifre.
Potrebbe anche essere quindi 051123123 quindi poi il replace come lo
risolvi? Grazie. :)


 risolvi? Grazie. :)
Ho fatto quella sostituzione perché di addiceva di piů all'esempio chiesto
inizialmente. Comunque nella sezione di codice:
for each match in matches
 parola=replace(match.Value,"333","xxx")
 frase=replace(frase,match.Value,parola)
 next
nella secoda riga di codice puoi modificare la parola trovata nella regular
expression a seconda delle tue esigenze. Ad esempio, se vuoi modificare gli
ultimi tre caratteri sostituendoli con delle "x", scrivi:
for each match in matches
 parola=left(match.Value,len(match.Value)-3) & "xxx"
 frase=replace(frase,match.Value,parola)
 next
Come avrai capito, puoi trattare la stringa trovata come meglio desideri. :)
Ciao
--
AZ

Prima o poi mi toccherà impararle queste regular exp. ;)


 Prima o poi mi toccherà impararle queste regular exp. ;)
Gulp! Anche a me!!!
Conoscete qualche buon link al volo?
Nixs

Direttamente da msdn :)
Oggetto RegExp:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/ht
ml/js56jsobjregexpression.asp
Sintassi:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/ht
ml/js56jsgrpregexpsyntax.asp


 Nixs
Ve le consiglio perché nella gestione dei testi è davvero comodo per
ricerche più complesse della solita sequenza di caratteri e per la gestione
del testo in genere come controlli, ecc...
Ciao
--
AZ

 del testo in genere come controlli, ecc...
 Ci ho dato un'occhiata, ma... son dure eh?!
Tutti quei ^*//$%-!!!!
Nixs

Diciamo che l'impatto iniziale è un pò palloso... però credo che superato
quello a fatte un paio di prove si entra facilmente nel meccanismo...
L'utilità è indubbia...


 L'utilità è indubbia...
Vi segnalo anche questo sito dove potete trovare migliaia di
regular-expression già pronte.
http://www.regexlib.com
Ciao
--
AZ

 
http://www.regexlib.com
wow! Ti pago una pizza! :-))
Nixs

 Nixs
Me lo segno! ;-)
Proprio ieri ho trovato due programmini in .net che aiutano nella stesura
delle regular-expression. Se hai il framework installato ti consiglio di
provarli:
http://www.gotdotnet.com/userarea/keywordsrch.aspx?keyword=regular%20express
ion%20workbench
http://www.sellsbrothers.com/products/
Ciao
--
AZ

 provarli:
Framework?
Io non uso .NET ma ASP "normale"
Nixs


Moderatore di it.comp.www.asp - .NET MVP
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle! 

 essere abbastanza numerosi :)
Danie'... io devo ancora capire bene cos'è 'sto Framework e poi
vedo se installarlo :-))))))
Comunque... con ASP "normale" le regular exp funzionano vero?
Io ne ho provata una e pare che tutto ok.
Nixs