Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di rambco
    Registrato dal
    Aug 2001
    Messaggi
    582

    [VB] Tagliare stringa fino ad un carattere

    Mi spiego meglio :

    c:\prova\sub\file.bat

    Come faccio per ottenre solo file.bat ? Che funzione posso usare ?

  2. #2
    codice:
    Function Parte(Var As Variant, Index As Integer, Sep As String) As String
        ' --- Routine ritorna la parte della stringa passata in var
        '     avendo il carattere di separazione passato in Sep e il numero di
        '     campo di ritorno passato in index
        '     se ritorna Var=null passato qualcosa che non va
        '
        Dim Passa As Variant
        Dim posto As Long
        Dim ini   As Integer
        Dim PostoM  As Long
        Dim MaxSegna As Long
        Dim a   As Long
        Dim Iniziale    As Integer
        Dim Finale  As Integer
        Dim Uscita As String
        
        Passa = Var
        If Passa = "" Or IsNull(Passa) Or Index < 1 Then
           Parte = -1
           Exit Function
        End If
        ' controllo se esiste il carrattere separatore cercato
        posto = 0
        posto = InStr(Passa, Sep)
        If posto < 1 Then
            Parte = -1
            Exit Function
        End If
        posto = 0: ini = 1: PostoM = 0: MaxSegna = 0
        '-- controllo per quanti sono i segnaposto
        For a = 1 To Len(Passa)
            posto = 0
            posto = InStr(ini, Passa, Sep)
            If posto > 0 Then
                ini = posto + 1
                MaxSegna = MaxSegna + 1
            End If
        Next
        If Index > (MaxSegna + 1) Then
            Parte = -1
            Exit Function
        End If
        Iniziale = 1: posto = 0: Finale = 0: ini = 1
        For a = 1 To Index
            posto = InStr(ini, Passa, Sep)
            If posto > 0 Then
                Finale = posto ' - 1
                ini = posto + 1
                If a = (Index - 1) Then
                    Iniziale = posto ' + 1
                End If
                posto = 0
            End If
        Next
        ' determinare quanti caratteri è lungo il campo da recuperare
        Uscita = ""
        Select Case Index
            Case 1
                Uscita = Trim(Left(Passa, Finale - 1))
            Case Is = (MaxSegna + 1)
                Uscita = Trim(Mid$(Passa, Finale + 1))
            Case Else
                Uscita = Trim(Mid$(Passa, Iniziale + 1, (Finale - (Iniziale + 1))))
        End Select
        ' Normalizzazione di Uscita
        Uscita = Trim(Uscita)
        If Uscita = Sep Or Uscita = "" Then
            Uscita = "  "
        End If
        Parte = Uscita
    End Function
    usa questa routine
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Utente di HTML.it L'avatar di rambco
    Registrato dal
    Aug 2001
    Messaggi
    582

    ammazza

    na cosa un po meno succosa di risorse hw no ?

  4. #4
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    Potresti usare la funzione mid e giocarci un po' sopra...con un ciclo for che ti controlla tutte le lettere dal fondo finche trova una barra ecc...non dovrebbe essere molto lungo da scrivere, anzi

  5. #5
    Utente di HTML.it L'avatar di rambco
    Registrato dal
    Aug 2001
    Messaggi
    582

    ecco ho risolto

    basta usare il mid con il left ! tnx

  6. #6
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    left...?

  7. #7
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    InStrRev:

    Restituisce la posizione della prima occorrenza di una stringa inclusa in un'altra a partire dalla destra della stringa.
    codice:
    Dim x as integer
    x = InStrRev(StringaPath, "\") +1 
    ' il +1 serve per togliere il carattere \
    Right:
    Restituisce una stringa contenente un numero di caratteri specificato a partire dalla destra della stringa.

    codice:
    MiaStringa= Right(StringaPath, x)


    oppure in una unica riga :
    codice:
    MiaStringa= Right(StringaPath, InStrRev(StringaPath, "\") + 1)


  8. #8
    Utente di HTML.it L'avatar di Nico
    Registrato dal
    Apr 2002
    Messaggi
    458
    Questa non la sapevo...grazie!

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