Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Eliminare spazi vuoti/apici dentro una stringa

    Ciao a tutti...
    Sto cercando qualcosa che mi elimini uno spazio vuoto o un apice dentro una stringa.
    Devo convertire un nickname - ad esempio gulasch o'bahama - in gulaschobahama
    Ho provato a fare questo:

    dim username,nome,nick
    username = "gulasch o'bahama"
    nome= replace(username,"'","")
    nick= trim(nome)

    ' Nome della nuova cartella
    strNewFolder = "/nick"

    ' Percorso di destinazione, relativo o assoluto
    strPath = Server.MapPath("/public")

    Set objFso = Server.createObject("Scripting.FileSystemObject")
    objFso.createFolder(strPath & strNewFolder)

    Set objFso = Nothing

    Solo che la funziona TRIM elimina lo spazio prima e dopo e non in mezzo alla stringa...
    :master:
    Non so come fare...
    Ciau!
    Tutto succede, nulla capita.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    nome= replace(username,"'","") 
    nome= replace(nome," ","")
    Roby

  3. #3
    provo subito!! grazie!!!
    Tutto succede, nulla capita.

  4. #4
    ...ho risolto un problema ma ne è nato un altro!
    In pratica, sto creando un sistema di creazione delle cartelle in base alla registrazione sul forum in modo tale che se uno clicca occhiocieco.com/username trova la sua paginetta.
    Solo che se si iscrive A'bunzù naturalmente la ù darà problemi!
    Come posso fare per trasformare tutti gli accenti? O cmq una funzione che mi permette di risolvere tutte le casistiche?
    Devo fare tanti replace????
    Grazie!!!
    Tutto succede, nulla capita.

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    Function ConvertiTitoloInNomeScript(strTitolo)
        risultato = strTitolo
        risultato = replace(risultato, "à", "a")
        risultato = replace(risultato, "è", "e")
        risultato = replace(risultato, "é", "e")
        risultato = replace(risultato, "ì", "i")
        risultato = replace(risultato, "ò", "o")
        risultato = replace(risultato, "ù", "u")
    
        set re = Server.CreateObject("VBScript.RegExp")
        re.Pattern = "[^\da-z]" 'Lascio solo numeri e lettere
        re.global = true
        re.IgnoreCase = true
        risultato = re.replace(risultato,"-") 'Il resto lo sostituisco con il -
    
        re.Pattern = "-{2,}"
        re.global = true
        re.IgnoreCase = true
        risultato = re.replace(risultato,"-") 'Lascio un solo - se ne ce sono di più consecutivi
        set re = nothing
        
        if left(risultato,1) = "-" then
            risultato = mid(risultato,2,len(risultato)-1) 'Tolgo - se è il primo carattere
        end if
        if right(risultato,1) = "-" then
            risultato = left(risultato,len(risultato)-1) 'Tolgo - se è l'ultimo carattere
        end if
        risultato = lcase(risultato)
        ConvertiTitoloInNomeScript = risultato
    End function
    In questo caso gli spazi diventano "-".
    Fai attenzione ai duplicati però.
    "pero" e "però" punterebbero alla stessa cartella...

    Roby

  6. #6
    roby??? sei un mito!!!
    Grazie mille!!!!
    farò un controllo sull'esistenza della cartella ed eventualmente si aggiunge un numero, o lo sceglie l'utente, vediamo, qualcosa mi inventerò!!
    Grazie mille!!!!!!! Veramente...
    Tutto succede, nulla capita.

  7. #7
    non vorrei rompere le scatoline ma ho provato in mille modi...
    Utilizzando il tuo codice ho risolto molti problemi.
    Tuttavia devo controllare che nn ci sia una cartella con lo stesso nome.

    Questo è il codice:


    username = "Gino alba'nunzio"
    nome = ConvertiTitoloInNomeScript(username)
    newdir = "public/" & nome

    'verifico la cartella

    Set objFile = Server.CreateObject ("Scripting.FileSystemObject")
    If objFile.FolderExists (newdir) Then
    Response.Write "La directory esiste."
    Else
    Response.Write "La directory NON esiste!"
    objFile.CreateFolder Server.MapPath(newdir & nome)
    End If
    Set objFile = Nothing

    La cartella esiste ma il sistema non tiene conto del fatto che esiste. La condizione è sempre falsa.
    Ho provato a sostituire la variabile newdir con il nome della cartella o con il con il nome della cartella e del percorso, sia su aruba che sul mio pc.
    Nulla.
    Mi va sempre in errore (il file esiste già...)
    Tutto succede, nulla capita.

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il server.MapPath lo usi solo per creare la cartella e non per controllare che esista.
    Why?

    Roby

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 © 2026 vBulletin Solutions, Inc. All rights reserved.