+ Rispondi al Thread
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Maiuscolo e minuscolo dopo il punto

  1. #1
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837

    Maiuscolo e minuscolo dopo il punto

    Ciao,

    Mi potete aiutare nella realizzazione di una funzione che mi consenta di visualizzare del testo seguendo la punteggiatura.

    Dovrà essere visualizzato sempre in minuscolo tranne l'iniziali dopo il punto che dovranno essere in maiuscolo.


    Grazie
    Carmen!

  2. #2
    Luogo
    BS / MI
    Post
    1,608
    Blogs
    33
    In pratica una Function che riceve in ingresso un testo qualsiasi e ne setta ogni Char a minuscolo, mentre maiuscolo ogni primo Char dopo il punto.
    Ma ASP Classico ( VB Script ) o ASPX ( VB ? C# ? )...
    Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
    Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]

  3. #3
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Esatto. Lo devo fare in ASP classic
    Carmen!

  4. #4
    Luogo
    BS / MI
    Post
    1,608
    Blogs
    33
    Quote Originariamente inviato da Carmen Visualizza il messaggio
    Esatto. Lo devo fare in ASP classic
    Una soluzione abbastanza completa e omni-comprensiva potrebbe essere questa :

    codice:
    Function SentenceCase(strInput As String) As String
    
        Dim i As Long
        Dim bCap As Boolean
        Dim Ch As String
        
        strInput = LCase(strInput)
        bCap = True
        
        For i = 1 To Len(strInput)
        
            Ch = Mid(strInput, i, 1)
            
            Select Case AscW(Ch)
                Case 97 To 122 '-- a-z : separated and put on top as happens more often
                    If bCap Then
                        Mid(strInput, i, 1) = UCase(Ch)
                        bCap = False
                    End If
                Case 33, 46, 63, 10, 13   '-- sentence terminators ! . ? Lf Cr
                    bCap = True
                Case 32, 160, 9           '-- space, non-break space, tab
                Case 34, 41, 93, 125, 148 '-- closing quotes or brackets
                Case Is < 128             '-- other chars between 0-127
                    If bCap Then bCap = False
                Case Else                 '-- Extended-Ascii (128-255) or Unicode (> 255)
                    If bCap Then
                        If StrComp(Ch, UCase(Ch), vbBinaryCompare) <> 0 Then
                            '-- a letter that has uppercase.
                            Mid(strInput, i, 1) = UCase(Ch)
                        End If
                        bCap = False
                    End If
            End Select
            
        Next
        
        SentenceCase = strInput
           
    End Function
    Vedi se può fare al caso tuo.
    Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
    Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]

  5. #5
    Luogo
    Lazio
    Post
    1,598
    Blogs
    21
    Quote Originariamente inviato da Carmen Visualizza il messaggio
    Ciao,

    Mi potete aiutare nella realizzazione di una funzione che mi consenta di visualizzare del testo seguendo la punteggiatura.

    Dovrà essere visualizzato sempre in minuscolo tranne l'iniziali dopo il punto che dovranno essere in maiuscolo.


    Grazie
    puoi eseguire uno split della stringa in base al punto ottenendo così un array di stringhe,
    quindi metti in maiuscolo la prima lettera di ogni array ed in minuscolo le altre
    ed alla fine ricomponi il testo
    Ciao sspintux
    ------------------------------------------------------------

    O Santo Protettore dell'informatico quadratico medio, se puoi allontana da me questo cetriolo amaro!
    Azz! ... questo è un grande porck-around; potremmo addirittura farlo passare per una funzionalità avanzata

  6. #6
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Non và. Sembra + una funzione x VB che x asp.

    Mi dà errore quì:
    codice:
    Case 97 To 122 '-- a-z : separated and put on top as happens more often
    Carmen!

  7. #7
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Quote Originariamente inviato da sspintux Visualizza il messaggio
    puoi eseguire uno split della stringa in base al punto ottenendo così un array di stringhe,
    quindi metti in maiuscolo la prima lettera di ogni array ed in minuscolo le altre
    ed alla fine ricomponi il testo
    Possibile un esempio....
    Carmen!

  8. #8
    Luogo
    BS / MI
    Post
    1,608
    Blogs
    33
    Quote Originariamente inviato da Carmen Visualizza il messaggio
    Non và. Sembra + una funzione x VB che x asp.

    Mi dà errore quì:
    codice:
    Case 97 To 122 '-- a-z : separated and put on top as happens more often
    E infatti l'ho modificata e testata su VB6.
    Non ricordavo che la Select Case di VBScript purtroppo non supporta :
    - Case X To Y
    - Case Is

    Niente di rotto : una struttura Select Case può essere replicata con una sequenza equivalente di If / ElseIf. In ogni caso non ci sono ragioni perchè una Function valida in VB6 non possa esserlo altrettanto in VBScript ( facendo gli opportuni adattamenti ).
    Riprova in questo modo :

    codice:
    Function SentenceCase(strInput As String) As String
    
        Dim i As Long
        Dim bCap As Boolean
        Dim Ch As String
        
        strInput = LCase(strInput)
        bCap = True
        
        For i = 1 To Len(strInput)
        
            Ch = Mid(strInput, i, 1)
            
            '-- a-z : separated and put on top as happens more often
            If AscW(Ch) >= 97 And AscW(Ch) <= 122 Then
                If bCap Then
                    Mid(strInput, i, 1) = UCase(Ch)
                    bCap = False
                End If
                '-- sentence terminators ! . ? Lf Cr
                ElseIf (AscW(Ch) = 33 Or AscW(Ch) = 46 Or AscW(Ch) = 63 Or AscW(Ch) = 10 Or AscW(Ch) = 13) Then
                    bCap = True
                '-- space, non-break space, tab
                ElseIf (AscW(Ch) = 32 Or AscW(Ch) = 160 Or AscW(Ch) = 9) Then
                '-- closing quotes or brackets
                ElseIf (AscW(Ch) = 34 Or AscW(Ch) = 41 Or AscW(Ch) = 93 Or AscW(Ch) = 125 Or AscW(Ch) = 148) Then
                '-- other chars between 0-127
                ElseIf (AscW(Ch) < 128) Then
                    If bCap Then bCap = False
                '-- Extended-Ascii (128-255) or Unicode (> 255)
                Else
                    If bCap Then
                        If StrComp(Ch, UCase(Ch), vbBinaryCompare) <> 0 Then
                            '-- a letter that has uppercase.
                            Mid(strInput, i, 1) = UCase(Ch)
                        End If
                        bCap = False
                    End If
            End If
           
        Next
        
        SentenceCase = strInput
           
    End Function
    Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
    Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]

  9. #9
    Luogo
    Lazio
    Post
    1,598
    Blogs
    21
    Quote Originariamente inviato da Carmen Visualizza il messaggio
    Possibile un esempio....
    cioè ? stai chiedendo un esempio sulle seguenti istruzioni in vbscript:
    - split
    - join o in alternativa il ciclo for
    - ucase
    e qualche if per gestire i casi particolari ?

    ...qui trovi qualcosa

    VbScript Array Join Function
    Ciao sspintux
    ------------------------------------------------------------

    O Santo Protettore dell'informatico quadratico medio, se puoi allontana da me questo cetriolo amaro!
    Azz! ... questo è un grande porck-around; potremmo addirittura farlo passare per una funzionalità avanzata

  10. #10
    L'avatar di Carmen
    Carmen non è in linea Scribacchino
    Luogo
    Italy
    Post
    837
    Da errore su questa linea: Mid(strInput, i, 1) = UCase(Ch)

    Crado che manchi qualcosa
    Carmen!

+ Rispondi al Thread
Pagina 1 di 3 123 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi