Die Deutsche Programmiersprache


Bedienungsanleitung


sprach-toggle dark mode toggeln

Duden/Pfade Funktionen

Trenn_Zeichen

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

Aliase

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

Implementation

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

Ist_Absolut

Gibt zurück ob der gegebene UNIX Pfad ein absoluter oder relativer Pfad ist
  • Parameter: t
  • Parameter Typ: Text
  • Rückgabe Typ: Wahrheitswert

Aliase

  1. <t> ein Absoluter Pfad ist

Implementation

    Gib wahr, wenn '/' am Anfang von t steht zurück.

Ordner_Pfad

Gibt den 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.
  • Parameter: t
  • Parameter Typ: Text
  • Rückgabe Typ: Text

Aliase

  1. den 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.

Basis_Pfad

Gibt den letzten Element eines Pfades zurück. Falls der Pfad leer ist, wird "." ausgegeben.
  • Parameter: t
  • Parameter Typ: Text
  • Rückgabe Typ: Text

Aliase

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

Implementation

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

Erweiterung

Gibt die Erweiterung einer Datei zurück. Wenn der Pfad eines Ordners gegeben wurde
oder der Parameter t leer ist, wird einen leeren Text zurück gegeben.
  • Parameter: t
  • Parameter Typ: Text
  • Rückgabe Typ: Text

Aliase

  1. die Erweiterung der Datei bei <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, gib "" zurück.
        Wenn t an der Stelle i gleich '.' ist, gib t ab dem i. Element zurück.
        Verringere i um 1.
    Gib "" zurück.

Datei_Name

Gibt den Dateinamen einer Datei zurück.
  • Parameter: t
  • Parameter Typ: Text
  • Rückgabe Typ: Text

Aliase

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

Implementation

    Der Text bf ist der Basispfad von t.
    Wenn bf gleich "." ist, gib "" zurück.
    Die Zahl i ist 1.
    Solange i kleiner als, oder die Länge von bf ist und bf an der Stelle i ungleich '.' ist, erhöhe i um 1.
    Gib bf bis zum (i minus 1). Element zurück.

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
  • Parameter: t
  • Parameter Typ: Text
  • Rückgabe Typ: Text

Aliase

  1. der 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.

Verbinden

Verbindet zwei UNIX Pfade mit einem '/' und säubert zuletzt.
  • Parameter: a, b
  • Parameter Typ: Text, Text
  • Rückgabe Typ: Text

Aliase

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

Implementation

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