Also ich habe jetzt noch mal beide Projekte durchgesehen, ausprobiert, versucht ein kleines benchmark aufzustellen (leider nicht gaaaanz so gelungen ^^)
So?
Jedenfalls brauchte das Programm von StGaensler nur ca. 20 Sekunden zum Verschieben, das Programm von Max allerdings ca. 24 Sekunden für das Verschieben von 10.592 (bzw. bei Max noch weniger grund: J hat gefehlt) Dateien.
Wenn man deinem Profil und deinen Infos glauben darf, bist du Auszubildender Informatiker für Software-Design und Software Engineering im Ersten Ausbildungsjahr. Deshalb, bin ich mir sicher, hast du auch den Grund bemerkt:
Fokussiere bitte die letzte, respektive die vorletzte Zeile an.
Erläuterung: Die Datei wird kopiert und der Rückgabewert der Funktion überprüft; wenn ungleich 0 (-->Kein Fehler), erfolgt eine Auswertung der Datei nach folgenden Kriterien:
Source, Destionation, CopyTo, CopyFrom, Extention, AlternateFilename, FileAttributes, CreationTime, LastAccess.
Der Rest (LastWriteTime, FileSizeHigh, FileSizeLow, und FileSize) hatte leider keinen Platz mehr auf dem Screenshot...
Das das Auslesen, Umwandeln des System-TimeStamps und Schreiben dieser Details den Code verlangsamt ist (denke ich) jedem klar.
Wenn mein Code 24 Sekunden und Stefans nur 20 Sekunden für die gleiche Menge an Daten (=10.592) benötigt hat, heißt das, dass das kopieren pro Datei durchschnittlich 0,4413-Periode Sekunden benötigt hat.
Mit schreiben der Infos komme ich auf ganze 0,5296 Sekunden.
Von der komplexität und länge des Codes habe ich mich auch eindeutig für den von StGaensler entschieden, außerdem war er im gegensatz zu dem von Max Systemunabhängig (soweit ich das jetzt gesehen habe)
Nun, dann erlaube mir die Frage, was es für einen Unterschied macht, ob die Binary 30KB oder 300KB hat. Das ist sowas von egal. Dein PC hat bestimmt an die 2*1024*1024 KB RAM, die Festplatte wir größer als 100*1024*1024 KB sein. Wo ist da bitte (heutzutage) das Problem?
Ich habe das Programm nicht für einen Mikrocontroller à la Atmel oder ähnlichem programmiert...
Dabei ist mir beim durchgucken bei Max Code (Konsole) aufgefallen (ist mir förmlich ins Auge gesprungen) das das J gefehlt hat! Das hat das ausführen natürlich auch gezeigt, alle Dateien mit J oder j waren noch da!
Das Powerforen-Duell: Der Punkt geht an dich. Dafür habe ich aber auch Zweimal "l" eingebaut...:st:
das einzige was mir bei Max besser gefallen hat, war einmal die GUI zusätzlich zur Konsolenanwendung und die Generelle möglichkeit, auszuwählen ob verschieben/kopieren und ob generell überschrieben werden soll, allerdings gab es mit der Wahl der verzeichnisse einige Fehler die nicht abgefangen wurden! So kam es zu fehlern, wenn ein Verzeichniss nicht gesetzt wurde! Für den Fall sollte meiner Meinung nach eine ANSTÄNDIGE Fehlermeldung (bei dem Ursprungsverzeichniss) erscheinen oder (bei dem Zielverzeichniss) einfach von ursprung ausgegangen werden
Herzlichen Dank. Einige Fehler gleich?
Bei mir steht da:
Wählen sie das Verzeichnis mit den zu sortierenden Dateien aus.\n\nDie beinhalteten Dateien werden in das unten Ausgewählte\nVerzeichnis geordnet kopiert.
bzw.
Wählen sie das Verzeichnis aus, in welches die Unterordner\n erstellt werden sollen.\n Die Dateien werden alphabetisch in die Ordner A-Z sortiert.
Ist das denn so schwer zu verstehen? Muss ich wirklich davon ausgehen, das das Programm missbraucht wird!?
Auch würde mich stark interessieren, was du unter einer "ANSTÄNDIGE"n Fehlermeldung verstehst.
Zu den Kommentaren: Bei StGaenslers Code sind kommentare wirklich überflüssig, so in etwa wie die hälfte der Kommentare die Max benutzt hat
Kommentare beschreiben bei dir einfach öfters WAS du tust, anstatt warum du es tust
Nun, jeder hat seinen Eigenen Stil. Ich kommentierte von Anfang an so - und nicht anders. Ich habe auch ncith vor meinen "Stil" zu ändern, es gab noch nie Probleme/Beschwerden...
Direkt noch ein Tipp für Max: Reguläre Ausdrücke könnte man benutzen, wenn man alle Buchstaben Braucht
Damit man sich nicht beim Alphabet verschreibt, wie!?
Wie das nun aussieht, ob man die Codes hier nun veröffentlichen soll/kann/darf überlass ich erstmal dem Threadersteller und den beiden Teilnehmern (ihr düft euren Code natürlich sofort veröffentlichen wenn ihr wollt)
mit freundlichen Grüßen - Euer Truman
Und Stefan, willst du ihn veröffentlichen!?
Aber kein hätte, würde, währe. Einfach die Tatsachen ins Auge fassen:
Somit kann auch ein Code von 6 Zeilen gegen einen von 1337 (680 GUI + 357 Console) Zeilen gewinnen.
Montag gehe ich nicht in die Arbeit - oder frage nach einem anderen Job, am Besten ganz ohne Computer...:st: