Newsgroup: it.comp.lang.visual-basic
Titolo: Sostituire parti di una stringa

Salve a tutti!
Eccomi qui con la mia domanda da principiantino!
Esiste un metodo semplice semplice per sostituirmi
una parte di una stringa con un'altra?
Tipo, se io ho 2 variabili string:
a="Giuseppino"
b="Papperino"
posso fare in modo che le "pp" venga sostituito
ad esempio con "Ciao!" così:
a="GiuseCiao!ino"
b="PaCiao!erino"
???
Ho già creato un algoritmo, ma usa InStr, Left, Right,
Len... Tutto un casino, vorrei proprio sapere se esiste
qualcosa di più semplice.
Ciao
Giulio

 ha scritto


 ???
Se usi VB6:
a=replace(a,"pp","Ciao!")
Ciao
Sir Jo

 End Function
Se Vecchia = "" allora p = 1 e il prg va in loop infinito.

 ha scritto nel messaggio
news:7w616.167527$hk4.6...@news.infostrada.it...

Option Explicit
Public Function MioTrastullo(ByVal sOrigine As String, ByVal sRimpiazza As
String, ByVal sCon As String) As String
   Dim p As Long
   MioTrastullo = sOrigine
   p = InStr(sOrigine, sRimpiazza)
   If p And sRimpiazza <> "" Then MioTrastullo = Left(sOrigine, p - 1) +
sCon + Right(sOrigine, Len(sOrigine) - p - Len(sRimpiazza) + 1)
End Function
Private Sub Command1_Click()
   Debug.Print MioTrastullo("Giuseppino", "se", "Ciao!")
End Sub

 Se Vecchia = "" allora p = 1 e il prg va in loop infinito.
giusta osservazione probabilmente.
ma mi era sempre capitato di sostituire qualcosa, semmai, con niente, mai il
contrario :)

...
Questa è quella che uso io:
Function ReplaceSubStr(ByVal Str As String, ByVal SubStr As String, ByVal
NewSubStr As String, Optional Compare As VbCompareMethod = vbBinaryCompare)
As String
    Dim i As Long
    If Len(SubStr) > 0 And StrComp(SubStr, NewSubStr) <> 0 Then
        Do
            i = InStr(i + 1, Str, SubStr, Compare)
            If i > 0 Then
                Str = Mid$(Str, 1, i - 1) & NewSubStr & Mid$(Str, i +
Len(SubStr))
            End If
        Loop While i > 0
    End If
    ReplaceSubStr = Str
End Function

 String, ByVal sCon As String) As String
(Tra me e me): Poi non ho capito perchè ho messo i "ByVal", non servono!.
Mah

 wrote in message
news:3Mk16.167770$DG3.3...@news2.giganews.com...

Perche' no ?

 ha scritto nel messaggio
news:924ngs$614mf$1...@ID-56381.news.dfncis.de...

Nel caso specifico non servono. Non modifico i valori di nessun parametro
all'interno della mia funzione.

 wrote in message
news:fpl16.125836$IP1.4...@news1.giganews.com...

Pero' garantisci anche il chiamante che non lo farai mai !
Buon Natale
Aldo

 Buon Natale
Auguri e buone feste.

 Auguri e buone feste.
Anche a te e a tutto il ng.
Aldo

 Che cio' che e' stato passato come parametro non venga modificato.
Si, in generale, ma torno a ripetere che nel *caso specifico* di thread, la
mia funzione non modifica alcun parametro, quindi e' giusto ed opportuno
passare i valori per riferimento. Se poi tu vuoi dire che chi alla fine
utilizza la funzione la possa modificare, beh allora sono fatti suoi, vorra'
dire che aggiungera' il ByVal. Se cosi' fosse, allora i parametri di *tutte*
le funzioni dovrebbero essere passati per valore!

 wrote in message
news:THp16.126678$IP1.4...@news1.giganews.com...

Esatto !
Ciao
Aldo

 Esatto !
Libero di pensarla come vuoi!

Fantomas ha scritto nel messaggio ...

Guarda che è giusto usare SEMPRE ByVal e ByRef (io lo specifico anche se non
serve) SOLO se devi modificare i parametri passati.
E' una questione di logica "pulita".
Nel tuo esempio potresti essere esonerato dal farlo poichè i parametri sono
di tipo stringa e passare dati troppo "grossi" ByVal potrebbe dare un po'
fastidio allo stack.
Ciao