Schrift
[thread]6246[/thread]

Wie benennt man ein Verzeichnis um? (Seite 2)



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
esskar
 2004-05-11 14:59
#82210 #82210
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
rekursiv sagt man dann, wenn ein funktion sich selbst aufruft, um ein ergebnis zu erzielen...
du würdest quasi eine funktion basteln, die nacheinander alle dateien und verzeichnisse in einem verzeichnis durchläuft; stößt die funktion auf ein verzeichnis, dann ruft die funktion sich wieder selbst mit dem neuen verzeichnispfad auf und tut das selbe, für das neue verzeuchnis usw.
wenn keine einträge mehr in dem directory vorliegen, terminiert die funktion ja und die rekursionen lösen sich auf!
bony
 2004-05-11 15:26
#82211 #82211
User since
2004-04-30
18 Artikel
BenutzerIn
[Homepage] [default_avatar]
Danke, schon wieder ein Stück schlauer ;-) und hat wunderbar funktioniert (mit rename)
Crian
 2004-05-11 15:46
#82212 #82212
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Auf jeden Fall sollte man beim Umbenennen abtesten, ob das gleiche Filesystem verwendet wird und nicht immer Kopieren und Löschen, das kann u.a. sehr lange dauern und das Umbenennen von Verzeichnissen auf sehr vollen Datenträgern unmöglich machen.

Kleiner theoretischer Ausflug zu rekursiven Funktionen: rekursive Funktionen haben keine "geschlossene" Definitionen, sondern in der Definition kommt der Aufruf der Funktion selbst wieder vor. Das kann dann trotzdem berechnet werden, wenn die Werte kleiner als der zu berechnende Wert (oder sonstwie bekannt) sind.

Ein Beispiel:

f(0) := 1
f(n) := 1 + f(n-1)

Manchmal lassen sich - wie in diesem Fall - "geschlossene" Formeln für die Funktion finden, hier etwa

f(n) := n+1


Es gibt aber auch rekursive Funktionen, für die das nicht gelingt.

Betrachten wir die Ackermannfunktion, sie wurde 1928 von dem Mathematiker Wilhelm Ackermann definiert und wird heute in der folgenden vereinfachten Form verwendet:

ack(0,y) := y+1
ack(x,0) := ack(x-1,1)
ack(x,y) := ack(x-1,ack(x,y-1))

kleine Werte lassen sich leicht ausrechnen, aber wenn man größere Werte errechnen will, stößt man immer noch sehr schnell an die Grenzen der Computer, selbst mit Abspeichern bekannter Werte.

Falls es interessiert, kann ich das entsprechende Programm dazu mal hervorkramen (ist allerdings C++ iirc - sollte sich aber leicht in Perl übertragen lassen).\n\n

<!--EDIT|Crian|1084276802-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Free Faq
 2004-05-11 19:53
#82213 #82213
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
"freefaq: du baust eine wrapper-sub namens Rename um eine builtin namens rename? mh, magst du keine kleinbuchstaben-subs in deinem haupt-code oder hat das irgendeinen anderen grund?"
Hmm jo und? *g* Ne, hab es aus gewohnheit gemacht...
Klar so wie es da steht, ist es irgendwie Sinnlos, extra noch eine Sub dafür zu schreiben.
Haut mich nicht, ich bin ein Noob!
esskar
 2004-05-11 20:10
#82214 #82214
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ansich ist es aber kein schlechter stil, wenn man build-in funktionen wrappet!
jan
 2004-05-11 21:39
#82215 #82215
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
nein, das nicht, ich war nur verwundert, weil das wrappen den aufruf nur insofern verändert, dass ein großes statt einem kleinen r als anfangsbuchstabe ist :)
Free Faq
 2004-05-11 23:55
#82216 #82216
User since
2003-09-10
141 Artikel
BenutzerIn
[default_avatar]
Habe für meine Scripte immer ein und die selbe DLL Datei, in der nur Subroutinen drin sind.
Dort hab ich dann utner anderem auch eine Subroutine zum lesen und speichern von Dateien plus gegebenenfalls aufkommenden Fehlerreport. So muss ich die 20Zeilen COde nicht immer wiederholen und bei änderungen, muss ich nicht alle meine Scripte ändern, sondern nur die DLL-Datei. Quasi wie Stylesheets :)
Finds ne tolle Sache, vor allem wenn man am lernen ist! Es gibt immer wieder neue Ideen und Probleme die weitreichende Änderungen zu folge hätten.
Haut mich nicht, ich bin ein Noob!
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2004-05-10 23:59.