Discussione:
un replace un po' complicato
(troppo vecchio per rispondere)
Akery
2021-11-23 18:46:41 UTC
Permalink
Buonasera,

da un file csv sono importate delle mail che invece di avere la "@"
hanno "_", come faccio a sostituire il carattere underscore con la
chiocchiola senza modificare la restante parte della mail in caso fosse
presente un underscore nel corpo?

esempio:

pinco_pallino_mydomain.com come potrebbe diventare
***@mydomain.com

Grazie
--
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
Bruno Campanini
2021-11-24 00:37:41 UTC
Permalink
Post by Akery
Buonasera,
"_", come faccio a sostituire il carattere underscore con la chiocchiola
senza modificare la restante parte della mail in caso fosse presente un
underscore nel corpo?
===================================
Private Sub Command4_Click()
Dim S As String, n As Single

S = "pinco_pallino_mydomain.com"
n = InStrRev(S, "_")
If n Then
S = Mid(S, 1, n - 1) & "@" & Mid(S, n + 1)
End If
MsgBox S

End Sub
==================================

Bruno
Ammammata
2021-11-24 08:21:34 UTC
Permalink
Il giorno Wed 24 Nov 2021 01:37:41a, *Bruno Campanini* ha inviato su
Post by Bruno Campanini
n = InStrRev(S, "_")
ah, interessante, questa non la sapevo :)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Michele
2021-11-24 09:45:23 UTC
Permalink
Post by Ammammata
Il giorno Wed 24 Nov 2021 01:37:41a, *Bruno Campanini* ha inviato su
Post by Bruno Campanini
n = InStrRev(S, "_")
ah, interessante, questa non la sapevo :)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Però ricorrerei al codice solo per le mail che contengono due trattini bassi.
Quindi prima faccio un replace semplice tramite query applicando un filtro del tipo not like "*_*_*"
e poi faccio un ciclo con il codice di Ammammata...
BFS
2021-11-24 09:53:06 UTC
Permalink
Post by Michele
Post by Ammammata
Il giorno Wed 24 Nov 2021 01:37:41a, *Bruno Campanini* ha inviato su
Post by Bruno Campanini
n = InStrRev(S, "_")
ah, interessante, questa non la sapevo :)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Però ricorrerei al codice solo per le mail che contengono due trattini bassi.
Quindi prima faccio un replace semplice tramite query applicando un filtro del tipo not like "*_*_*"
e poi faccio un ciclo con il codice di Ammammata...
se sono presenti anche mail con la @ e più trattini devi aggiugere un
controllo
e il codice che ti hanno suggerito diventa

Dim S As String, n As Single
Dim k As Single
S = "***@mydomain.com"
n = InStrRev(S, "_")
k = InStrRev(S, "@")
If k = 0 And n > 0 Then
S = Mid(S, 1, n - 1) & "@" & Mid(S, n + 1)
End If
MsgBox S


BFS
Ammammata
2021-11-24 11:39:13 UTC
Permalink
Il giorno Wed 24 Nov 2021 10:45:23a, *Michele* ha inviato su
it.comp.appl.access il messaggio news:9c93a8be-8483-4949-be53-
Post by Michele
il codice di Ammammata...
Date a Cesare quello che è di Cesare, io non sono l'autore
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Akery
2021-11-24 11:50:57 UTC
Permalink
Post by Bruno Campanini
Post by Akery
Buonasera,
hanno "_", come faccio a sostituire il carattere underscore con la
chiocchiola senza modificare la restante parte della mail in caso
fosse presente un underscore nel corpo?
===================================
Private Sub Command4_Click()
Dim S As String, n As Single
S = "pinco_pallino_mydomain.com"
n = InStrRev(S, "_")
If n Then
End If
MsgBox S
End Sub
==================================
Bruno
bellissima funzione, ieri sul tardi ero arrivato a scrivere
strreverse/replace/strreverse in una query per raggiungere l'obbiettivo
ma così è molto più elegante.

Grazie
--
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
shad...@gmail.com
2021-11-25 01:33:01 UTC
Permalink
Dim S As String, n As Single
Dim k As Single
S = "***@mydomain.com"
n = InStrRev(S, "_")
k = InStrRev(S, "@")
If k = 0 And n > 0 Then

Mid(S, n, 1 ) = "@"

End If
MsgBox S

Continua a leggere su narkive:
Loading...