Eliminare ultimi 10 caratteri



  • Eliminare ultimi 10 caratteri
    di Mangusta (utente non iscritto) data: 02/07/2013 16:09:08

    Ciao a tutti! oggi devo eliminare gli ultimi 10 caratteri di una stringa di cui non conosco la lunghezza ma so per certo che gli ultimi 10 vanno eliminati.

    da

    A1234567890

    ottengo

    A

    ho provato con left , right , mid ecc ma non ci sono riuscito



  • di HarryBosch data: 02/07/2013 17:38:22

    Ti manca il LEN per contare i caratteri di una stringa. Una volta che conosci quelli, puoi utilizzare la funzione Left che estrae "tot" caratteri a partire da sinistra:
    Left(stringa, caratteri)

    quindi nel tuo caso saranno
    totCaratteri - 10

    s = Left(stringa, Len(stringa) - 10)

    ovviamente stringa sarà il valore da passare.

    dove ti eri perso? ^_^



  • di Vecchio Frac data: 02/07/2013 19:27:47

    Anche con Mid funziona.
    E in un modo più esotico, anche con le espressioni regolari ^_^
     
    Option Explicit
    
    Sub test()
    Dim stringa As String
    Dim re As Object, matches As Object, s As String
    
        stringa = "abcdefghijklmnopqrstuvwxyz"
        
        Debug.Print "Stringa originale: " & stringa
    
        Debug.Print "Con Left: ", Left(stringa, Len(stringa) - 10)
        
        Debug.Print "Con Mid: ", Mid(stringa, 1, Len(stringa) - 10)
        
        Set re = CreateObject("vbscript.regexp")
        With re
            .MultiLine = False
            .Global = True
            .IgnoreCase = True
            .pattern = ".{10}$"
        End With
    
        If re.test(stringa) Then
            Set matches = re.Execute(stringa)
            Debug.Print "Con Regex: ", Replace(stringa, matches(0), "")
        End If
        Set re = Nothing
        
    End Sub






  • di Mangusta (utente non iscritto) data: 03/07/2013 12:45:43

    Risolto Harry !! grazie mille!!!
    non usavo contemporaneamente len e left!

    Vecchio Frac espressioni regolari ?



  • di Vecchio Frac data: 03/07/2013 19:27:14

    Un po' lungo da spiegare... le espressioni regolari (regular expressions) sono un metodo fornito dall'oggetto RegExp (della classe Scripting) per effettuare manipolazioni di stringhe: tipicamente ricerche, affettamenti di stringhe, restituzione di determinate porzioni di stringa che corrispondono a un pattern indicato.
    Si usano (mi viene in mente così) per estrarre gli url dagli indirizzi h t t p, o per estrarre il testo html racchiuso solitamente tra tag come html, body, ecc., o per analizzare testo che ha forma di codice fiscale, di numeri di telefono, di date (per esempio, puoi creare una textbox che accetta testo libero ma con le regex recuperi solamente il testo che rappresenta una data).
    Strumento potentissimo e difficilissimo da digerire ^_^
    IN rete c'è una marea di letteratura.
    Tieni conto anche che ci sono diverse versioni di regex, praticamente non c'è uno standard fisso, e la versione usata da VB6/VBA ne è un sottoinsieme piuttosto semplificato.
    L'operatore Like funziona in modo analogo alle regex, ma di queste rappresenta una versione ancora più semplificata e inefficiente.

    Nel post ho voluto giocare con le regex tanto per mostrare un'alternativa ^_^