Duden/Pfade functions

Trenn_Zeichen

Gibt den Pfad-Trennzeichen, der dem Betriebssystem entspricht zurück.
Auf Linux: '/'
Auf Windows: '\'
  • Return type: Buchstabe

Aliases

  1. Pfad-Trennzeichen
  2. den Pfad-Trennzeichen
  3. das Pfad-Trennzeichen

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib '' zurück.
    Gib '/' zurück.

UNIX_Ist_Absolut

Gibt zurück ob der gegebene UNIX Pfad ein absoluter oder relativer Pfad ist.
Der Rückgabewert ist wahr wenn der erste Buchstabe des gegebenen Textes ein '/' ist.
  • Parameters: t
  • Parameter type: Text
  • Return type: Wahrheitswert

Aliases

  1. <t> kein absoluter UNIX Pfad ist
  2. <t> ein absoluter UNIX Pfad ist

Implementation

    Wenn t leer ist, gib falsch zurück.
    Gib wahr, wenn (t an der Stelle 1) gleich '/' ist zurück.

UNIX_Säubern

Säubert/Normalisiert einen UNIX Pfad:
- Ersetzt mehrere aufeinderfolgende '/' durch einen ("///" -> "/")
- Entfernt '.' pfade ("a/." -> "a")
- Entfernt innere '..' pfade und das (nicht-..) element das davor steht ("a/b/.." -> "a")
- Entfernt .. elemente die nach root stehen ("/.." -> "/")

Der gesäuberter Pfad endet mit einem '/' nur wenn es root ist.
Ein leerer Pfad gibt "." zurück.

Entspricht Go's path.clean funktion
https://pkg.go.dev/path#Clean
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. der UNIX Pfad <t> gesäubert

Implementation

    Wenn t gleich "" ist, gib "." zurück.
    Der Wahrheitswert rooted ist wahr, wenn t an der Stelle 1 gleich '/' ist.
    Die Zahl n ist die Länge von t.
    Der Text path ist "". [ output text ]
    Die Zahl r ist 1. [ next index to process ]
    Die Zahl dotdot ist 1. [ index where .. must stop ]
    Wenn rooted gleich wahr ist, dann:
        Füge '/' an path an.
        Speichere 2 in r.
        Speichere 2 in dotdot.

    Solange r kleiner als, oder n ist, mache:
        [Schreibe r auf eine Zeile.]
        Wenn t an der Stelle r gleich '/' ist, dann:
            [ empty path element ]
            Erhöhe r um 1. [skip /]
        Wenn aber t an der Stelle r gleich '.' ist und (r gleich n ist oder t an der Stelle (r plus 1) gleich '/' ist), dann:
            [ . element ]
            Erhöhe r um 1. [skip .]
        Wenn aber t an der Stelle r gleich '.' ist und t an der Stelle (r plus 1) gleich '.' ist und (r plus 1 gleich n ist oder t an der Stelle (r plus 2) gleich '/' ist), dann:
            [ .. element: remove last / ]
            Erhöhe r um 2. 
            Wenn die Länge von path größer als, oder dotdot ist, dann:
                Mache:
                    Wenn die Länge von path gleich 1 ist, dann:
                        Speichere "" in path.
                    Sonst
                        Speichere path bis zum (die Länge von path minus 1). Element in path.
                Solange die Länge von path größer als dotdot ist und path an der Stelle (die Länge von path minus 1) ungleich '/' ist.
            Wenn aber rooted gleich falsch ist, dann:
                [ cannot backtrack, but not rooted, so append .. element ]
                Wenn die Länge von path größer als 0 ist, dann:
                    Füge '/' an path an.
                Füge ".." an path an.
                Speichere die Länge von path in dotdot.
        Sonst:
            [ add slash if needed ]
            Wenn rooted und die Länge von path ungleich 1 ist oder nicht rooted und die Länge von path ungleich 0 ist, dann:
                Füge '/' an path an.

            Solange r kleiner als, oder n ist und t an der Stelle r ungleich '/' ist, mache:
                Füge (t an der Stelle r) an path an.
                Erhöhe r um 1.

    Wenn path leer ist, speichere "." in path.
    Gib path zurück.

UNIX_Verbinden

Verbindet zwei UNIX Pfade mit einem '/' und säubert zuletzt.
  • Parameters: a, b
  • Parameter type: Text, Text
  • Return type: Text

Aliases

  1. die UNIX Pfade <a> und <b> verbunden

Implementation

    Wenn a leer ist, gib b zurück.
    Wenn b leer ist, gib a zurück.
    Gib der UNIX Pfad (a verkettet mit '/' verkettet mit b) gesäubert zurück.

UNIX_Vollständiger_Pfad

Nimmt einen Relativen UNIX Pfad t und gibt den vollständigen absoluten Pfad zurück.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den absoluten UNIX Pfad zu <t>
  2. der absoluten UNIX Pfad zu <t>

Implementation

    Der Text cwd ist das Arbeitsverzeichnis.
    Gib die UNIX Pfade cwd und t verbunden zurück.

UNIX_Ordnerpfad

Gibt den UNIX Pfad ohne das letze Element zurück.
Falls der Pfad leer ist, wird ein "." zurück gegeben.
Falls der Pfad nur aus "/" gefolg von nicht-"/" Zeichen, wird "/" zurückgegeben.

f("/a/b/c") = "/a/b"
f("a/b/c") = "a/b"
f("/a/") = "/a"
f("a/") = "a"
f("a") = "."
f("/") = "/"
f("..") = "."
f(".") = "."
f("") = "."
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den UNIX Ordnerpfad von <t>
  2. der UNIX Ordnerpfad von <t>

Implementation

    Die Zahl i ist die Länge von t.
    
    Solange i größer als 0 ist, mache:
        Wenn t an der Stelle i gleich '/' ist, dann:
            Der Text dir ist t bis zum i. Element.
            Entferne alle '/' nach dir.
            Wenn die Länge von dir gleich 0 ist, gib "/" zurück.

            Gib dir zurück.
        Verringere i um 1.
    Gib "." zurück.

UNIX_Basisname

Gibt den letzten Element eines UNIX Pfades zurück. Falls der Pfad leer ist, wird "." ausgegeben.

f("/a/b/c/d.png") = "d.png"
f("/a/b/c/d") = "d"
f("/a/b/c/") = "c"
f("/a/b/c///") = "c"
f("./b") = "b"
f("hi.txt") = "hi.txt"
f(".") = "."
f("..") = ".."
f("") = "."
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den UNIX Basisnamen von <t>
  2. der UNIX Basisname von <t>

Implementation

    Der Text t2 ist (t mit allen '/' danach entfernt).
    Die Zahl i ist die Länge von t2.
    Wenn t2 gleich "" ist, gib "." zurück.
    Solange i größer als 0 ist, mache:
        Wenn t2 an der Stelle i gleich '/' ist, verlasse die Schleife.
        Verringere i um 1.
    Gib t2 ab dem (i plus 1). Element zurück.

UNIX_Dateiname

Gibt den Dateinamen einer Datei zurück. Wenn der UNIX Pfad nicht im Format von '*/*.*' ist wird ein leerer Text zurück gegeben.

f("/a/b/c/test.txt") = "test"
f("/a/b/c/test.txt.exe") = "test"
f("test.exe") = "test"
f("/a/b/c/") = ""
f("/a/b/c") = ""
f("/") = ""
f(".") = ""
f("..") = ""
f("noext") = ""
f("") = ""
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den UNIX Dateinamen von <t>
  2. der UNIX Dateiname von <t>

Implementation

    Die Zahl i ist die Länge von t.
    Die Zahl ende ist -1.
    Solange i größer als 0 ist, mache:
        Wenn t an der Stelle i gleich '.' ist, speichere i minus 1 in ende.
        Wenn t an der Stelle i gleich '/' ist, verlasse die Schleife.
        Verringere i um 1.
    Wenn ende kleiner als 1 ist, gib "" zurück.
    Gib t im Bereich von i plus 1 bis ende zurück.

UNIX_Erweiterung

Gibt die Erweiterung einer Datei zurück. Wenn der UNIX Pfad t ein Ordner ist oder leer ist, wird einen leeren Text zurück gegeben.

f("/a/b/c/bar.css") = "css"
f("/a/b/c/foo.tar.gz") = "tar.gz"
f("bar.css") = "css"
f("/a/b.trap/c/noext") = ""
f("/") = ""
f(".") = ""
f("..") = ""
f("noext") = ""
f("") = ""
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. die UNIX Erweiterung der Datei bei <t>

Implementation

    Die Zahl i ist die Länge von t.
    Die Zahl extStart ist i.
    Solange i größer als 0 ist, mache:
        Wenn t an der Stelle i gleich '/' ist, verlasse die Schleife.
        Wenn t an der Stelle i gleich '.' ist, speichere i plus 1 in extStart.
        Verringere i um 1.
    Wenn extStart größer als, oder die Länge von t ist, gib "" zurück.
    Gib t ab dem extStart. Element zurück.

Windows_Ist_Absolut

Gibt wahr zurück wenn der gegebene Windows Pfad mit einem "\" anfängt oder der zweite Buchstabe ein Doppelpunkt ist ("C:").
  • Parameters: t
  • Parameter type: Text
  • Return type: Wahrheitswert

Aliases

  1. <t> kein absoluter Windows Pfad ist
  2. <t> ein absoluter Windows Pfad ist

Implementation

    Wenn t gleich "" ist, gib falsch zurück.
    Wenn t an der Stelle 1 gleich '' ist, gib wahr zurück. [ "Usersadmin" ]
    Gib wahr, wenn die Länge von t größer als, oder 2 ist und (t an der Stelle 1) ein lateinischer Buchstabe ist und t an der Stelle 2 gleich ':' ist zurück. [ "C:Usersadmin" ]

Windows_Saeubern

Säubert/Normalisiert einen gegebenen Windows Pfad. Entfernt keine doppelten Schrägstrichen (\\)!

f("C:\\Users\\admin") = "C:\Users\admin"
f("C:\\Users\\admin\\") = "C:\Users\admin\"
f("C:\\Users\\admin\\..") = "C:\Users"
f("C:\\Users\\admin\\..\\") = "C:\Users\"
f("C:\\Users\\admin\\.") = "C:\Users\admin"
f("C:\\Users\\admin\\.\\") = "C:\Users\admin\"
f("C:\\Users\\..\\admin\\.") = "C:\admin"
f("C:\\Users\\\\admin") = "C:\Users\\admin"
f("C:\\..") = "C:\"
f("C:") = "C:\"
f("..") = "\"
f(".") = "\"
f("") = "\"
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. der Windows Pfad <t> gesäubert

Implementation

Implemented in libddpstdlib.a

Windows_Pfad_Verbinden

Verbindet zwei Windows Pfade und säubert zuletzt.
  • Parameters: a, b
  • Parameter type: Text, Text
  • Return type: Text

Aliases

  1. die Windows Pfade <a> und <b> verbunden

Implementation

Implemented in libddpstdlib.a

Windows_Laufwerkbuchstabe

Gibt den Laufwerkbuchstaben des gegebenen Windows Pfads zurück. Wenn keiner existiert wird ' ' zurück gegeben.
Falls der Laufwerkbuchstaben kein Buchstabe zwischen a-Z ist wird auch ' ' zurückgegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Buchstabe

Aliases

  1. der Laufwerkbuchstabe von <t>
  2. den Laufwerkbuchstaben von <t>

Implementation

    Wenn die Länge von t kleiner als 2 ist, gib ' ' zurück.
    Wenn t an der Stelle 2 ungleich ':' ist, gib ' ' zurück.
    Wenn nicht (t an der Stelle 1) ein lateinischer Buchstabe ist, gib ' ' zurück.
    Gib t an der Stelle 1 zurück.

Windows_Vollständiger_Pfad

Nimmt einen Relativen Windows Pfad t und gibt den vollständigen absoluten Pfad zurück.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den absoluten Windows Pfad zu <t>
  2. der absoluten Windows Pfad zu <t>

Implementation

    Der Text cwd ist das Arbeitsverzeichnis.
    Gib die Windows Pfade cwd und t verbunden zurück.

Windows_Ordnerpfad

Gibt den Windows Pfad ohne das letze Element zurück.
Falls der Pfad leer ist, wird ein "." zurück gegeben.
Falls der Pfad nur aus "C:\" gefolgt von nicht-"/" oder nicht-"\" Zeichen, wird "C:\" zurückgegeben.
Falls der Pfad nur aus "\" oder "/" gefolgt von nicht-"/" oder nicht-"\" Zeichen, wird "\" zurückgegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den Windows Ordnerpfad von <t>
  2. der Windows Ordnerpfad von <t>

Implementation

    Die Zahl i ist die Länge von t.
    
    Solange i größer als 0 ist, mache:
        Wenn t an der Stelle i gleich '' ist oder t an der Stelle i gleich '/' ist, dann:
            Der Text dir ist t bis zum i. Element.
            Entferne alle '' nach dir.
            Wenn die Länge von dir gleich 0 ist, gib "" zurück. [ "abc" -> "" ]
            Wenn ':' am Ende von dir steht, gib dir verkettet mit '' zurück. [ "C:abc" -> "C:" ]

            Gib dir zurück.
        Verringere i um 1.
    Gib "." zurück.

Windows_Basisname

Gibt das letzte Element des gegebenen Windows Pfads zurück. Falls der Pfad leer ist, wird "." ausgegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den Windows Basisnamen von <t>
  2. der Windows Basisname von <t>

Implementation

    Die Zahl ende ist die Länge von t.
    Wenn ende gleich 0 ist, gib "." zurück.
    Solange t an der Stelle ende gleich '' ist oder t an der Stelle ende gleich '/' ist, verringere ende um 1.

    Die Zahl i ist ende.
    Solange i größer als 0 ist, mache:
        Der Buchstabe curr ist t an der Stelle i.
        Wenn (curr gleich '' ist oder curr gleich '/' ist oder curr gleich ':' ist), verlasse die Schleife.
        Verringere i um 1.
    Gib t im Bereich von (i plus 1) bis ende zurück.

Windows_Dateiname

Gibt den Dateinamen einer Datei zurück. Wenn der Windows Pfad nicht im Format von '*\*.*', '*\*.*' oder '*:*.*' ist wird ein leerer Text zurück gegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den Windows Dateinamen von <t>
  2. der Windows Dateiname von <t>

Implementation

    Die Zahl i ist die Länge von t.
    Die Zahl ende ist -1.
    Solange i größer als 0 ist, mache:
        Der Buchstabe curr ist t an der Stelle i.
        Wenn curr gleich '.' ist, speichere i minus 1 in ende.
        Wenn curr gleich '' ist oder curr gleich '/' ist oder curr gleich ':' ist, verlasse die Schleife.
        Verringere i um 1.
    Wenn ende kleiner als 1 ist, gib "" zurück.
    Gib t im Bereich von i plus 1 bis ende zurück.

Windows_Erweiterung

Gibt die Erweiterung einer Datei zurück. Wenn der Windows Pfad t ein Ordner ist oder leer ist, wird einen leeren Text zurück gegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. die Windows Erweiterung der Datei bei <t>

Implementation

    Die Zahl i ist die Länge von t.
    Die Zahl extStart ist i.
    Solange i größer als 0 ist, mache:
        Der Buchstabe curr ist t an der Stelle i.
        Wenn curr gleich '.' ist, speichere i plus 1 in extStart.
        Wenn curr gleich '' ist oder curr gleich '/' ist oder curr gleich ':' ist, verlasse die Schleife.
        Verringere i um 1.
    Wenn extStart größer als, oder die Länge von t ist, gib "" zurück.
    Gib t ab dem extStart. Element zurück.

Pfad_Ist_Absolut

Gibt zurück ob der gegebene UNIX Pfad ein absoluter oder relativer Pfad ist.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
  • Parameters: t
  • Parameter type: Text
  • Return type: Wahrheitswert

Aliases

  1. <t> kein absoluter Pfad ist
  2. <t> ein absoluter Pfad ist

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib t ein absoluter Windows Pfad ist zurück.
    Gib t ein absoluter UNIX Pfad ist zurück.

Pfad_Säubern

Säubert/Normalisiert den gegebenen Pfad:
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. der Pfad <t> gesäubert

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib der Windows Pfad t gesäubert zurück.
    Gib der UNIX Pfad t gesäubert zurück.

Pfad_Verbinden

Verbindet zwei Pfade mit dem Trennzeichen und säubert zuletzt.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
  • Parameters: a, b
  • Parameter type: Text, Text
  • Return type: Text

Aliases

  1. die Pfade <a> und <b> verbunden

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib die Windows Pfade a und b verbunden zurück.
    Gib die UNIX Pfade a und b verbunden zurück.

Vollständiger_Pfad

Nimmt einen Relativen Pfad t und gibt den vollständigen absoluten Pfad zurück.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den absoluten Pfad zu <t>
  2. der absoluten Pfad zu <t>

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib den absoluten Windows Pfad zu t zurück.
    Gib den absoluten UNIX Pfad zu t zurück.

Ordnerpfad

Gibt den Pfad ohne das letze Element zurück.
Jenachdem in welchem Betriebsystem die Funktion aufgerufen wird, läuft die Windows_x oder UNIX_x funktion.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den Ordnerpfad von <t>
  2. der Ordnerpfad von <t>

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib den Windows Ordnerpfad von t zurück.
    Gib den UNIX Ordnerpfad von t zurück.

Basisname


Gibt den letzten Element eines UNIX Pfades zurück. Falls der Pfad leer ist, wird "." ausgegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den Basisnamen von <t>
  2. der Basisname von <t>

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib den Windows Basisnamen von t zurück.
    Gib den UNIX Basisnamen von t zurück.

Dateiname

Gibt den Dateinamen einer Datei zurück.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. den Dateinamen von <t>
  2. der Dateiname von <t>

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib den Windows Dateinamen von t zurück.
    Gib den UNIX Dateinamen von t zurück.

Erweiterung

Gibt die Erweiterung einer Datei zurück. Wenn der Pfad t ein Ordner ist oder leer ist, wird einen leeren Text zurück gegeben.
  • Parameters: t
  • Parameter type: Text
  • Return type: Text

Aliases

  1. die Erweiterung der Datei bei <t>

Implementation

    Wenn das Betriebssystem gleich "Windows" ist, gib die Windows Erweiterung der Datei bei t zurück.
    Gib die UNIX Erweiterung der Datei bei t zurück.