Newsgroup: it.comp.lang.visual-basic
Titolo: Replace(string) particolare

dunque... ho bisogno di trasformare questa
stringa:
[percorso]\ModS\[Altro_percorso]\ModS_[n° di char a caso].txt
in:
[percorso]\ModS\[Altro_percorso]\ModT_[stessi caratteri di prima].txt
usando perň la funzione Replace(stringa), mi sostituisce tutti
e 2 i "ModS" in "ModT", e non va bene...
ho pensato di dirgli di partire a fare la sostituzione dall'ultimo slash
incontrato, ma mi tronca completamete quello che c'č prima...
qualcuno ha un algoritmo furbo?
--
Licantrop0 / HackZ XtremE Crew since 2001
Mail: 
Lican...@hackzxtreme.cjb.net
Main Site: 
www.hackzxtreme.cjb.net

 [percorso]\ModS\[Altro_percorso]\ModT_[stessi caratteri di prima].txt
Prova cosi':
  Dim X As String
  X = "BlaBla\ModS\BlaBlaxxxxxx\ModS\BlaBla"
  Debug.Print X
  p1 = InStr(1, X, "\ModS\")
  p2 = InStr(p1 + 1, X, "\ModS\")
  X = Left(X, p2 - 1) & Replace(X, "\ModS\", "\ModT\", p2)
  Debug.Print X

   Debug.Print X
ecco cosa mancava! :)
grazie!


"Puntino ." ha scritto:

Scusa non avevo notato che la seconda stringa č "\ModS_"  e non "\ModS\".
Quindi il codice corretto č:
  Dim X As String
  Dim p1 As Integer
  Dim p2 As Integer
  X = "[percorso]\ModS\[Altro_percorso]\ModS_[n° di char a caso].txt"
  Debug.Print X
  p1 = InStr(1, X, "\ModS\")
  p2 = InStr(p1 + 1, X, "\ModS_")
  X = Left(X, p2 - 1) & Replace(X, "\ModS_", "\ModT_", p2)
  Debug.Print X
Avevo anche dimentica il Ciao. :-)

 qualcuno ha un algoritmo furbo?
  Dim sPath As String
  sPath _
    = "[percorso]\ModS\[Altro_percorso]\" _
    & "ModS_[n° di char a caso].txt"
  Debug.Print sPath
  Debug.Print Replace(sPath, "\ModS_", "\ModT_")
OUTPUT:
[percorso]\ModS\[Altro_percorso]\ModS_[n° di char a caso].txt
[percorso]\ModS\[Altro_percorso]\ModT_[n° di char a caso].txt
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

> Avevo anche dimentica il Ciao. :-)
tranqui tranqui! ho risolto! :) grazie dell'aiuto!


"Maurizio Borrelli" ha scritto:

Esatto! Nota che, nel dare la mia prima risposta, avevo letto di fretta e
avevo visto due stringhe identiche da sostituire. Poi pero', nel correggere
l'errore col secondo post, non ho pensato che il problema era diventato
banale. Diavolo, ma perchè sono sempre cosi' distratto?! :-)
Ciao

 [percorso]\ModS\[Altro_percorso]\ModT_[n° di char a caso].txt
Replace(sPath, "S_", "T_")
j.econ :)

"javalab" ha scritto:

Azz....ma allora mi volete proprio mortificareeeeeeeeee?!!!!!!!!!
:-)))))))))))))))))

 j.econ :)
    Certe economie posso costare molto care!...
    Es.:
    [percorso]\ModS\[Altro_percorso]\ModS_S_XYZ_S_.txt
    Semmai:
    Replace(sPath, "S_", "T_", , 1)
    (O no?...)


 --------
ciao,


 :-)))))))))))))))))
    Piu' che mortificare... vivificare...


     Piu' che mortificare... vivificare...
puntino.zombie ?

"javalab"  ha scritto:

Sono sempre piu' affascinato dalla vostra fantasia :-)))))

 Replace(PathT, "ModS", "ModT", i)
    VB? o VBA? :P
--


     (O no?...)
Replace(sPath, "dS_", "dT_", , 1)
scherzi a parte, era solo per dare a puntino uno spuntino per mettere a
puntino la routino :)
meglio che vada a farmi uno spuntino, eh ? :)
ciao, a.

 meglio che vada a farmi uno spuntino, eh ? :)
    Una puntina di grana e un panino?


 Maurizio


ECCO LA SOLUZIONE FINALE!
i = InStrRev(PathS, "ModS")
PathT = VB.Left(PathS, i - 1) & _
Replace(Mid(PathS, i), "ModS", "ModT")
YEAH! :)
--


 i = InStrRev(PathS, "ModS")
                                   ^^^^^^
Forse mi sono perso qualcosa, ma  questo male si concilia con
[percorso]\ModS\[Altro_percorso]\ModS_[n° di char a caso].txt
Non puo' succedere che "ModS" sian contenuto in [n° di char a caso].txt ?


no, e mi dispiace di essermi spiegato cosě male... :(
chiedo perdono!


 chiedo perdono!
Ego te absolvo..........:-)))))

Perchč non fai la Replace di "ModS_" in "ModT_"?

 Perchč non fai la Replace di "ModS_" in "ModT_"?
Oddioooooo, ricominciamo dall'inizio?!!!! Licantropo, a te la parola!!!!
:-)))))

 YEAH! :)
    Continuo a non capire quel "VB". Se e' giusto perche' non anche
"VB.InStrRev", "VB.Replace" e "VB.Mid"?


 :-)))))
ok ok, raga: basta smarroni!
ho sbagliato e mi sono spiegato malissimo:
il replace da fare è:
[caratteri1]ModS[caratteri2]\ModS[caratteri3]
in
[caratteri1]ModS[caratteri2]\ModT[caratteri3]
in caratteri1 e caratteri2 è possibile che ci siano tutte
le combinazioni possibili di caratteri.(compreso \ModS)
in caratteri3 non è possibile che ci sia un ModS o ModT,
e la loro lunghezza massima è di 23.. e cmq la soluzione c'è
già!
ora ci siamo? :)


 Maurizio
ciao,


 e facendo VB., avrai l'elenco di tutte le vecchie funzioni di vb6.
quindi e' sempre possibile
    imports w98 = ms.windows98
e chiamare
    w98.bsod
?

 ?
:DDD ROTFL, non credo! :)
cmq i blu screen di xp sono molto + fententi
di quelli del 98...
se nel 98 te ne faceva uno, c'erano delle possibilità
di ritornare a windows, mentre sul 2000/xp o riavvii
o rimani li... :)
--


e facendo VB., avrai l'elenco di tutte le vecchie funzioni di vb6.
Ma, se usi 
vb.net
, perche' importare un namespace obsoleto, quando
esistono le classi String e StringBuilder che offrono le funzionalita'
che ti servono?
Nella fattispecie, i metodi Substring, Replace e Split fanno proprio cio'
che chiedi ;-)

 che chiedi ;-)
ok, vado a studiarle!
--


 di ritornare a windows, mentre sul 2000/xp
non so xp, ma togli 2000.


non so xp, ma togli 2000.
:-))))

 ?
Sě, ma pare che non serva. A livello interno viene poi
rimappata alla funzione nativa: XP.BSOD, che č molto
piů efficiente, pare.
Bye, G.

 o rimani li... :)
Il che la dice lunga sulle qualità tecniche di Windows 98 :-)
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!

 Il che la dice lunga sulle qualità tecniche di Windows 98 :-)
si'. con
"possibilità di ritornare a windows" il ns lupetto mannaro
intende che in quel caso avevi una chance di reinstallare 3.11.