Visualizzazione dei risultati da 1 a 6 su 6

Discussione: InStr sulle maiuscole

  1. #1

    InStr sulle maiuscole

    Come posso fare per rilevare la posizione dei caratteri maiuscoli in una stringa?

    Per esempio ho il nome della pagina:

    GestioneServizioEmail.asp

    Ho la pagina di livello superiore che si chiama GestioneServizio.asp (sempre con le maiuscole come inizio parola).


    Come posso ricavare solo 'GestioneServizio' da 'GestioneServizioEmail.asp' ?

    Grazie mille

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    Come posso ricavare solo 'GestioneServizio' da 'GestioneServizioEmail.asp' ?
    Se si tratta sempre e solo di questi caratteri allora è semplice... basta che fai:

    codice:
    Left("GestioneServizioEmail",1,16)
    altriementi la cosa diventa un pò più complicata...

  4. #4
    No appunto....

    Come convenzione usiamo "Gest" + "Prime 3 lettere sezione" + "Operazione" + ".asp"

    Invece qualche furbo geniaccio ovviamente ha continuato un progetto mettendo nel mezzo quante letter gli pareva.

    Adesso devo ricavare "Gest" + "Nomesezione" ma non ho più un numero fisso di caratteri.

    Per questo mi volevo fare una funzioncina che mi trova le maiuscole, mi scorre le prime 2 e alla terza mi taglia il nome.

    Forse con le regular expressions?

    codice:
    Function FindRoot(pagina)
       Dim i, j
       Dim Char
       i = 0
    
       Do while i < 2
           For j=0 to Ubound(pagina)
               If [Carattere J di pagina è maiuscolo] Then
                  Char = [Posizione carattere]
                  i = i+1
                  Exit For
               End If
           Next
       Loop
           
       'Taglia nome pagina
       FindRoot = Left(pagina, Char) & ".asp"
       
    
    End function
    La funzione sarebbe così (buttata giù ora, non so se va bene).
    Sapete come fare a completarla per trovare la i caratteri maiuscoli nella stringa 'pagina'?

    Thanks

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    già le regular expression sono fatte apposta

    ti faccio un esempio per togliere l'ultima parte
    codice:
    set re=Server.CreateObject("VBScript.RegExp")
    re.Pattern="[A-Z][a-z]+\.asp"
    re.Global=true
    
    paginaLivelloSuperiore="GestioneServizioEmail.asp"
    pagina=re.Replace(paginaLivelloSuperiore,".asp")
    
    Response.Write paginaLivelloSuperiore & "
    " & pagina

  6. #6
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    oppure:

    codice:
    Response.Write(FindThirdUCaseLetter("GestioneServizioEmail"))
    
    Function FindThirdUCaseLetter(str)
      For i=1 to Len (str)
         If mid(str,i,1) >= chr(65) and mid(str,i,1)<= chr(90) then
            pos=pos+1
            if (pos=3) then
               i=i-1  
               Exit For
            End if   
         End if
      Next
      FindthirdUCaseLetter=Left(str,i)
    End function
    comunque suggerirei di usare le Regular Expression come indicato sopra...

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.