Estrapolare parola specifica da un percorso file

di il
6 risposte

Estrapolare parola specifica da un percorso file

Buonasera ragazzi,


Vi scrivo perchè qualche difficoltà con quanto riportato nel titolo. Non scrivevo codice in VB.NET da qualche anno, sempre fatto per hobby e passione, e riprenderlo non è stato facile. Ad ogni modo, supponendo abbia questo percorso "C:\Users\Luca\Desktop\prova_file123.doc", a me interesserebbe estrapolare solamente quel "file123" per poi riutilizzarlo altrove. Avevo pensato a lavorare individuando il carattere "_" e poi tramite il metodo .Split dividermi la stringa e fare il resto ma non ho sempre un formato del genere e quindi questa idea è stata abolita. Avete, pertanto, qualche idea? Grazie mille


Luca

6 Risposte

  • Re: Estrapolare parola specifica da un percorso file

    Non va bene così?
    
            Dim str As String = "C:\Users\Luca\Desktop\prova_file123.doc"
            Try
                Dim s() As String = str.Split(".")
                s = s(0).Split("_")
                MsgBox(s(1))
            Catch ex As Exception
                MsgBox("Errore")
            End Try
    
  • Re: Estrapolare parola specifica da un percorso file

    Weierstrass ha scritto:


    Non va bene così?
    
            Dim str As String = "C:\Users\Luca\Desktop\prova_file123.doc"
            Try
                Dim s() As String = str.Split(".")
                s = s(0).Split("_")
                MsgBox(s(1))
            Catch ex As Exception
                MsgBox("Errore")
            End Try
    

    Ciao Weier, in realtà anche io avevo pensato potesse andare bene ma non so realmente se abbia lo stesso format. Mi spiego meglio, come nel caso indicato, può capitare abbia una roba del genere "C:\Users\Luca\Desktop\prova_123file.doc" come potrei avere "C:\Users\Luca\Desktop\prova-123file.doc" oppure ancora ""C:\Users\Luca\Desktop\prova_copia_123file.doc" e la porzione di mio interesse rimarrebbe sempre "123file". Non sono se sono stato chiaro. Non decidendo io il format e lo standard del nome del file, posso trovarmi in più condizioni. L'unica parola sempre presente, però pensandoci, è sempre "file".
  • Re: Estrapolare parola specifica da un percorso file

    La risposta è una sola: espressioni regolari.

    Ciao!
  • Re: Estrapolare parola specifica da un percorso file

    Luca Mano ha scritto:


    Weierstrass ha scritto:


    Non va bene così?
    
            Dim str As String = "C:\Users\Luca\Desktop\prova_file123.doc"
            Try
                Dim s() As String = str.Split(".")
                s = s(0).Split("_")
                MsgBox(s(1))
            Catch ex As Exception
                MsgBox("Errore")
            End Try
    

    Ciao Weier, in realtà anche io avevo pensato potesse andare bene ma non so realmente se abbia lo stesso format. Mi spiego meglio, come nel caso indicato, può capitare abbia una roba del genere "C:\Users\Luca\Desktop\prova_123file.doc" come potrei avere "C:\Users\Luca\Desktop\prova-123file.doc" oppure ancora ""C:\Users\Luca\Desktop\prova_copia_123file.doc" e la porzione di mio interesse rimarrebbe sempre "123file". Non sono se sono stato chiaro. Non decidendo io il format e lo standard del nome del file, posso trovarmi in più condizioni. L'unica parola sempre presente, però pensandoci, è sempre "file".
    Quindi
    
            Dim str As String = "C:\Users\Luca\Desktop\prova_copia_123file.doc"
            Try
                Dim s() As String = str.Split(".")
                s = s(0).Replace("-", "_").Split("_")
                MsgBox(s(s.Length - 1))
            Catch ex As Exception
                MsgBox("Errore")
            End Try
    
    oppure
    
            Dim str As String = "C:\Users\Luca\Desktop\prova_copia_123file.doc"
            Try
                Dim s() As String = str.Split(".")
                s = s(0).Replace("-", "_").Split("_")
                For Each i In s
                    If i.ToLower Like "*file*" Then
                        MsgBox(i)
                        Exit For
                    End If
                Next
            Catch ex As Exception
                MsgBox("Errore")
            End Try
    
    oppure segui il consiglio di Alka
  • Re: Estrapolare parola specifica da un percorso file

    Questo è un esempio di codice che fa da esempio per dimostrare l'uso dell'espressione allo scopo di estrarre l'informazione dalla stringa:
    
    ' Definisce i percorsi da esaminare ed elaborare.
    Dim paths = New String() {
    	"C:\Users\Luca\Desktop\prova_123file.doc",
    	"C:\Users\Luca\Desktop\prova-456file.doc",
    	"C:\Users\Luca\Desktop\prova_copia_789file.doc"
    }
    
    ' Crea l'espressione per isolare la parte interessata.
    Dim regex = New Regex("(?<Number>\d+)file")
    
    ' Scandisce tutti i percorsi completi di file da analizzare.
    For Each filePath In paths
    	
    	' Estrae la parte del percorso con il nome del file.
    	Dim fileName = Path.GetFileName(filePath)
    	
    	' Applica l'espressione e ottiene l'esito del match.
    	Dim match = regex.Match(fileName)
    	
    	' Se l'espressione non è soddisfatta, passa al percorso seguente.
    	If Not match.Success Then Continue For
    	
    	' Stampa il numero estrapolato dal nome del file.
    	Console.WriteLine(match.Groups("Number").Value)
    	
    Next
    
    Prova ad approfondirlo per capire come usarlo e modificarlo secondo i tuoi scopi.

    Ciao!
  • Re: Estrapolare parola specifica da un percorso file

    Grazie mille ad entrambi ragazzi. Questo problema l'ho risolto
Devi accedere o registrarti per scrivere nel forum
6 risposte