Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    68

    [VB6]Estrarre la parte destra di una stringa

    ciao, io ho una stringa di questo tipo:

    Stringa = "file:///c:/documents%20and%20settings/oreste/documenti/scuola%20matteo/università/tesi/verbali/ccdl%202006/settembre/settembre.doc"

    e avrei bisogno di estrarre soltanto il nome del file (settembre.doc), ho provato con Right ma accetta come secondo parametro soltanto il numero di caratteri, ma io in altre stringhe non so quanto sia lungo il nome del file, l'unica procedura che mi ha dato il risultato voluto è stata questa:

    Rovescio= StrReverse(Stringa)
    Vett=Split(Rovescio,"/")
    NomeFile = StrReverse(Vett(0))

    che è un pò macchinosa, esiste una funzione dedicata che mi permetta di fare ciò?

  2. #2
    Utente di HTML.it L'avatar di hkproj
    Registrato dal
    Jul 2006
    Messaggi
    250
    in vb6, no
    --------------------HkProj------------------

  3. #3

    Re: [VB6]Estrarre la parte destra di una stringa

    Originariamente inviato da battle
    ciao, io ho una stringa di questo tipo:

    Stringa = "file:///c:/documents%20and%20settings/oreste/documenti/scuola%20matteo/università/tesi/verbali/ccdl%202006/settembre/settembre.doc"

    e avrei bisogno di estrarre soltanto il nome del file (settembre.doc), ho provato con Right ma accetta come secondo parametro soltanto il numero di caratteri, ma io in altre stringhe non so quanto sia lungo il nome del file, l'unica procedura che mi ha dato il risultato voluto è stata questa:

    Rovescio= StrReverse(Stringa)
    Vett=Split(Rovescio,"/")
    NomeFile = StrReverse(Vett(0))

    che è un pò macchinosa, esiste una funzione dedicata che mi permetta di fare ciò?
    Certo, basta costruirsela !

    La funzione InStrRev(s, "/") restituisce la posizione di "/" in s partendo dal fondo.
    Dal carattere successivo trovi quello che ti serve.

    Quindi: Mid$(s, 1 + InStrRev(s, "/")), dove s e' ovviamente il pathname completo del tuo file, ti restituisce "settembre.doc" !


    Se vuoi formalizzare la funzione:

    Function UltimaParte(ByVal s As String) As String
    UltimaParte = Mid$(s, 1 + InStrRev(s, "/"))
    End Function
    IceCube_HT (VB6 fan Club)

  4. #4
    Una correzione: sotto Windows il separatore del percorso è \, ossia il backslash (e non /, slash semplice); tuttavia vengono comunemente accettati entrambi; pertanto bisogna modificare la funzione di conseguenza:
    codice:
    Function UltimaParte(ByVal s As String) As String
    Dim slashpos As Integer
    Dim backslashpos As Integer
    slashpos = InStrRev(s, "/")
    backslashpos = InStrRev(s, "\")
    If slashpos > backslashpos Then
        UltimaParte = Mid$(s, 1 + slashpos)
    Else
        UltimaParte = Mid$(s, 1 + backslashpos)
    End If
    End Function
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    68
    grazie del consiglio ragazzi!

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.