Newsgroup: it.comp.appl.access
Titolo: "Differenza" tra stringhe

E' possibile fare una operazione di differenza tra stringhe?
Vorrei togliere in automatico da una stringa dei caratteri posti alla 
fine della stessa.
Grazie e ciao.
-- 
E l'amore
Che vita differente avrei avuto se non avessi trovato questo amore con 
te.

 ha scritto nel messaggio 
news:mn.82567d758...@gmail.com...

Prova questa:
Private Sub Comando28_Click()
Dim AnyString, MyStr, prova
AnyString = Me.Testo26
prova = Len(Me.Testo26) - 1
MyStr = Left(AnyString, prova)
Me.Testo26 = MyStr
End Sub
questa funziona su una casella di testo eliminando il carattere alla destra
Ciao 

 ha scritto nel messaggio 
news:mn.82567d758...@gmail.com...

Prova con la Replace...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio
news:f2eio1$t9g$1...@tdi.cu.mi.it...

Mmmmm.... è pericoloso il Replace per queste cose, sostituisce in modo
indiscriminato...
Parlo per esperienza personale... mi ha fatto danni non indifferenti in
termini di perdita di tempo
aver sottovalutato la cosa...
Es:
PIPPO_POPPO
Se voglio sostituire le ultime PO ed usassi il Replace:
Replace("PIPPO_POPPO","PO","AA")
PIPAA_AAPAA
Ovviamente è solo un caso specifico di stringhe parziali... ma l'importante
è saperlo e ricordarlo.
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 ---------------------------------------------------------------------------
"PIPPO_POPPO"?!? "PIPAA_AAPAA"?!?
E non è colpa mia se conosci gente strana...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Si ma a qualcuno dovrň pure dare la colpa non vorrai che mi incolpi da
solo...
Ciao Sergio


 indiscriminato...
A me invece è successa una cosa strana. Seguendo le istruzioni sul 
Replace della guida in linea ho fatto questi passaggi:
lungContr = Len(strContr) - 1
strContr = Replace(strContr, " - ", "", lungContr - 3, 1, 
vbTextCompare)
Cioè nella stringa "strContr" partendo dalla posizione "lungContr - 3" 
cerco e sostituisco la stringa " - " (che praticamente è posta alla 
fine) una sola volta.
La cosa strana è che mi ritrovo solo due caratteri della stringa 
originaria! Suggerimenti?
Grazie.





 


 


Ciao


Access



 -- 
[TRATTO DALL'HELP] che è sempre bene leggere con attenzione
Il valore restituito dalla funzione Replace è una stringa, in cui sono state
eseguite le sostituzioni, che inizia dalla posizione specificata
nell'argomento start e termina alla fine della stringa expression. Non si
tratta di una copia della stringa originale.
Se interpreti correttamente le virgole mi sembra chiaro...
strContr = Replace(strContr, " - ", "", , 1, vbTextCompare)
Come vedi così funziona...., ma ovviamente parte dall'inizio... per poterti
restituire tutta la stringa... e quì nascono i problemi precedentemente
citati...in quanto l'occorrenza cercata potrebbe non essere nella posizione
che tu pensi... ed in quel caso ... CICCIA
Come ti dissi è meglio usare un'altra strada....
Saluti


Cosi:
Private Sub NomeTuoPulsante_Click()
Dim strContr, lungContr As String
strContr = nomeCaselladitesto
lungContr = Len(strContr)
strContr = Replace(strContr, "A", "",, 1, 1)
' lungContr - 7 questo non ti serve in quanto indica solo la posizione da
cui iniziare la ricerca
Testo90 = strContr
End Sub
Ciao
Access
[CUT]
A mio avviso non va bene... rileggi la mia risposta ed anche l'HELP...


 serve in quanto indica solo la posizione da cui iniziare la ricerca
Siccome la mia stringa strContr viene "incrementata" di parole separate 
da " - " a me serve di togliere l'ultima " - " che viene aggiunta.
Ecco perchè mi calcolo la lunghezza e parto dal terzultimo carattere o 
meglio vorrei partire dato che non accade ciò che vorrei. :)
Ciao


 Saluti
Ciao e grazie.


> Come ti dissi è meglio usare un'altra strada....
Ho utilizzato questa:
   lungContr = Len(strContr) - 2
   strContr = Left(strContr, lungContr)
Left mi restituisce i lungContr caratteri della stringa strContr.
Ciao e grazie.


 Ciao e grazie.
per cui il mio primo suggerimento era buono, no?
Ciao



 A mio avviso non va bene... rileggi la mia risposta ed anche l'HELP...
Si, effettivamente sostituisce tutte le occorrenze.
Compreso.
Ciao, Grazie


> per cui il mio primo suggerimento era buono, no?
Si, ti ringrazio.


 Che vita differente avrei avuto se non avessi trovato questo amore con te.
Tanto per aumentare la confusione; se dicevi subito che le parole/frasi 
contenute nella stringa sono separate da un carattere particolare (es. -) 
puoi utilizzare la Split:
es.
Dim myArr() as String, nuovaStringa as string
dim conta as integer
myArr=Split(stringaDaSeparare,"-")
for conta=0 to ubound(myArr)-1
    nuovaStringa=nuovaStringa & " - " & myArr(conta)
next
nuovaStringa = Mid(nuovaStringa,3)
Ciao.
-- 
Sergio MAZZA