Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034

    Replace di più caratteri

    ciao, come posso modificare:
    stringa = replace(sValue, "%3A", ":")

    in modo tale che oltre ai due punti faccia il replace anche di altri caratteri?

  2. #2
    Potresti fare una funzioni che accetta 2 parametri,
    un dictionary che contiene come Key il caratattere da sostituire
    e come Item il carattare da usare per la sostituzione,
    la stringa su cui applicare il tutto.

    Ciclare sul dictionary e applicare il replace alla stringa in base al dictionary ... un esempio è meglio

    codice:
    Set objDic = server.createobject("Scripting.Dictionary")
    'Aggiungo i caratteri ovviamente ho inventato
    objDic.Add "%3A", ":"
    objDic.Add "%3B", ";"
    objDic.Add "%2C", "("
    
    'la mia stringa
    vStr="Stringa %3A di %3B prova %2C "
    
    vStr = myReplace(objDic, vStr )
    
    'la mia funzione
    function myReplace(OggettoDictionary, Stringa)
       ' Recupero le chiavi che sono i caratteri da sostituire
       a = OggettoDictionary.Keys   
       
       'Ciclo su ogni chiave
       For i = 0 To OggettoDictionary.Count -1 
          'Replace
          Stringa = Replace(Stringa, a(i), OggettoDictionary.Item(a(i)))
       Next
    
      myReplace = Stringa
    end function

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151

    Re: Replace di più caratteri

    Originariamente inviato da meganoide
    ciao, come posso modificare:
    stringa = replace(sValue, "%3A", ":")

    in modo tale che oltre ai due punti faccia il replace anche di altri caratteri?
    Ciao, se non ho capito male, potresti fare una cosa del genere:

    stringa=replace(replace(sValue, "%3A", ":"),"%3A", ";"))

    in pratica fai il replace in cascata...
    Jupy

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    non va con nessuno dei due casi: nella funzione di deivnet mostra sempre la stringa così com'è e nel replace in cascata dà l'errore: Expected end of statement

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    questo errore lo da perchè molto probabilmente hai sbagliato a scrivere il repalce in cascata.. prova a controllare se hai messo le parentesi bene e inserito ogni parametro al suo posto...
    altrimenti funziona, provato sul campo!!
    Jupy

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    c'è una tonda in più (o in meno)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    12

    Re: Replace di più caratteri

    stringa = replace(sValue, "%3A", ":")
    Non è una soluzione elegante ma giusto perchè tu non perda tempo
    basta che chiami più volte la funzione replace.

    stringa = "Tutto il testo della tua stringa"

    stringa = replace(stringa, "%3A", ":")
    stringa = replace(stringa, "%2F", " ")

    etc

    A questo punto, la soluzione "elegante", che penso tu sia in grado di creare è un ciclo for che viene eseguito n volte (dove n è il numero di caratteri che vuoi sostituire). Tali caratteri li potresti inserire all'interno di un array bidimensionale.

    ciao

  8. #8
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da meganoide
    c'è una tonda in più (o in meno)
    si, se hai usato l'esempio che ti ho fatto io, allora si, alla fine c'è una parentesi in più.. toglila e vedrai che funzia
    Jupy

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da Jupy64
    questo errore lo da perchè molto probabilmente hai sbagliato a scrivere il repalce in cascata.. prova a controllare se hai messo le parentesi bene e inserito ogni parametro al suo posto...
    altrimenti funziona, provato sul campo!!
    hehehe l'hai scritto tu con una parentesi chiusa in più
    codice:
    stringa=replace(replace(sValue, "%3A", ":"),"%3B", ";")

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da Jupy64
    si, se hai usato l'esempio che ti ho fatto io, allora si, alla fine c'è una parentesi in più.. toglila e vedrai che funzia
    ecco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.