Ergebnis 1 bis 4 von 4

Thema: Dateiname aus String extrahieren

  1. #1

    Standard Dateiname aus String extrahieren

    Hallo,
    ich möchte in meinem Lua Skript aus dem Pfad z.B.
    /home/test/.local/tmp/img_1862.tif

    den Dateinamen ohne Suffix extrahieren.
    Wie geht das mit den String funktionen?

  2. #2

    Standard AW: Dateiname aus String extrahieren

    Code:
    local path = "/home/test/.local/tmp/img_1862.tif"
    local regex = "(?!.*(\/|\\)).*(?=.*\.)"
    local filename =  string.match( path, regex )
    Zur Erklärung:

    string.match kann mittels einer "Regular Expression" Strings auf ein gewisses Pattern untersuchen. Ich habe es nun mal so gemacht, dass sowohl ein "/" als auch ein "\" im Pfad rausgefiltert werden kann.
    Die RegEx filtert in diesem Fall also alles vom Beginn des Strings bis einschließlich des letzten (Back-)Slashs heraus, und anschließend wieder den letzten Punkt und alles was darauf folgt; Somit kannst du also nur den Dateinamen, ohne die jeweilige Endung, heraus extrahieren.


    Aufschlüsselung der RegEx "(?!.*(\/|\\)).*(?=.*\.)" für "/home/test/.local/tmp/img_1862.tif":

    Code:
    1. "(?!.*(\/|\\))" = <Filterung des Ordner-Pfads>
    2. ".*" = <Selection des Dateiname>
    3. "(?=.*\.)" = <Filterung der Dateiendung>
    Demnach funktionieren all die folgenden Strings:
    • "/home/test/.local/tmp/img_1862.tif"
    • "\home\test\.localß\tmp\img_1862.tif"
    • "D:\bla\blupp/test\.local\tmp/img_1862.tiffy"



    Du kannst dir das mal im RegExr angucken, und ein bisschen damit rumspielen: http://regexr.com/3ff60
    RegExs allgemein sind für solche Aufgaben sehr nützlich, schnell und einfach.
    Geändert von RP-01 (05.03.2017 um 23:54 Uhr)

  3. #3

    Standard AW: Dateiname aus String extrahieren

    Zitat Zitat von RP-01 Beitrag anzeigen
    RegExs allgemein sind für solche Aufgaben sehr nützlich, schnell und
    einfach.
    einfach.
    einfach.


    Es gibt da 2 Arten von Leuten in der IT:
    1. Solche, die RegEx können und lieben
    2. Und solche die es hassen

    Völlig unabhängig vom IT-Kenntnisstand und Beruf.
    Ich persönlich komme mit RegEx auch nach gefühlt 10 Jahren nicht klar.
    Bisher gab es für meine (sehr selten auftretenden) Zwecke schon immer was passendes irgendwo im Netz. Aber als generell "einfach" würde ich das nicht betiteln.

    Gmod-LUA selber bietet übrigens genau für diesen Zweck schon passende Funktion:
    https://wiki.garrysmod.com/page/stri...leFromFilename
    https://wiki.garrysmod.com/page/string/StripExtension

    Mit diesen beiden Methoden solltest du das selbe Ergebnis bekommen. Ist aber im Code lesbarer.
    Geändert von monky2k6 (06.03.2017 um 19:13 Uhr) Grund: Alternativer Lösungsvorschlag
    Website: monky-town.de

    WildStar
    Server: Kazor
    Seite: Verbannte
    Char: Monkii (Arkanschütze)

  4. #4

    Standard AW: Dateiname aus String extrahieren

    Das ist eben genau wie Pointer (oder multiple inheritance vs. Interfaces); some hate it, some love it.

    Wenn man sich ein bisschen intensiver damit auseinander setzt und mal ein paar Fälle pro Kommando hatte, bekommt man auch ein Gefühl dafür, welche Syntax man zu welchem Zweck anwenden kann.
    Gerade wenn du Parser baust, sind RegEx mMn ein Segen. Natürlich kannst du das auch alles von Hand zu Fuß implementieren, aber das ist meist deutlich aufwändiger, komplizierterer und unintuitiverer Code. Zudem ist neh RegEx viel leichter erweiterbar als ein Parser-Modul, welches nur zu einem bestimmten Zweck ge-hardcoded wurde.
    ..um jetzt irgendwo lediglich ein paar Zeichen rauszufiltern, braucht man allerdings auch nicht unbedingt RegExs, finde ich.
    Kann schon verstehen, warum die ebenso viel gehasst wie geliebt werden.

  5. Folgende 2 Benutzer sagen Danke zu RP-01 für den nützlichen Beitrag:


Ähnliche Themen

  1. Suche: dateiname des turret-models
    Von HenrikX im Forum Suche
    Antworten: 5
    Letzter Beitrag: 20.08.2009, 12:21
  2. Serverdateien extrahieren?
    Von TheStargater im Forum Server
    Antworten: 1
    Letzter Beitrag: 16.06.2009, 13:53
  3. Wohin Maps extrahieren?
    Von MuffinHyperon im Forum GMod Allgemein
    Antworten: 1
    Letzter Beitrag: 24.08.2008, 21:52
  4. Models (.mdl) extrahieren und bearbeiten
    Von maddi04 im Forum Models & Skins
    Antworten: 1
    Letzter Beitrag: 30.05.2006, 14:31
  5. Audio aus Video dateien extrahieren
    Von Alex22 im Forum Multimedia
    Antworten: 1
    Letzter Beitrag: 08.03.2006, 19:52

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •