Bearbeiten von „Projekt ddouble“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 58: Zeile 58:
* Der Vergleich zweier Dateien ist nur der Vergleich von Zahlen, wenn auch großen.
* Der Vergleich zweier Dateien ist nur der Vergleich von Zahlen, wenn auch großen.
* Sowohl der Hashwert für den Startblock als auch der für den ganzen Inhalt wird höchstens einmal pro Datei berechnet.
* Sowohl der Hashwert für den Startblock als auch der für den ganzen Inhalt wird höchstens einmal pro Datei berechnet.
= Projekt erstellen =
* IdeaIC starten
* Menü: <code>File</code> - <code>New</code> - <Project>
* Linke Spalte: <code>Dart</code>
* Dart-SDK:
** Windows: c:\dart-sdk
** Linux: ~/dart-sdk
* Es erscheint eine Listbox, dort <code>Console-Application a command-line application sample</code> anklicken
* <code>Next</code>-Button
* Project name: <code>ddouble</code>
* Project loction:
** Linux: <code>~/dev/ddouble</code>
** Windows: <code>c:\dev\ddouble</code>
* <code>Finish</code>-Button
Damit ist das Projekt names <code>ddouble</code> erstellt.
* Herunterladen der Datei [https://github.com/flutter-tutorial-de/dart-programming/raw/main/resources/ddouble.zip ddouble.zip] und diese im Projektverzeichnis (<code>c:\dev\ddouble</code> oder <code>~/dev/ddouble</code>) entpacken.
= Programmoptionen =
<pre>Usage: ddouble [<options>] [<file1> [<file2>...]]
  Find files with the same content in directory trees.
  <fileN>: a directory or a shell file pattern like '*.txt'
    or both like /home/*.txt
Examples:
ddouble
ddouble -V2 /opt/*.png /home
<option>:
-h, --help            Show the command description
-b, --block-length    length of a block for hashing
                      (defaults to "8388608")
-s, --start-length    length of the start block (used for the first hash value)
                      (defaults to "4096")
-x, --excluded        A regular expression for files to skip, e.g. ".*.(bak|sic)"
-X, --excluded-dirs    A regular expression for directory to skip, e.g. "test|.git|.config
-V, --verbose-level    0: no additional info 1: summary 2: detail 3: loop 4: fine
                      (defaults to "2")
</pre>
== pubspec.yaml ==
Wir verwenden drei externe Pakete, <code>path</code> für Behandlung von Dateinamen und <code>args</code> für die Auswertung von Programmargumenten und <code>crypto</code> für
die Prüfsummenberechnung.
Dazu kommt das externe Paket für Unittests <code>test</code> und die Unterstützung für die Quellcodeanalyse <code>pedantic</code>
Die Datei <code>pubspec.yaml</code> muss deshalb so aussehen:
<pre>name: dgrep
description: A program for searching dublicates (files with the same content).
version: 0.1.0
environment:
  sdk: '>=2.10.0 <3.0.0'
dependencies:
  args: ^1.6.0
  path: ^1.7.0
  crypto: ^2.1.5
dev_dependencies:
  pedantic: ^1.9.0
  test: ^1.15.7
</pre>
== Die Quellcodedateien ==
Durch das obige Entpacken der Zip-Datei gibt es folgende Dateien im Verzeichnis <code>lib</code>:
* Die Datei helper.dart: kleine Hilfsfunktionen, die sonst nirgens hinpassen (Übernahme aus [[Projekt dgrep]]).
* Die Datei file_supplier.dart: Ein Generator, der Dateinamen aus einem Dateinamen liefert  (Übernahme aus [[Projekt dgrep]]).
* Die [[Datei double_finder.dart]]: die Klasse <code>DoubleFinder</code>, die die Suche organisiert.
Zu jeder obigen Datei gehört eine Datei, die die Unittests enthält. Per Konvention wird einfach ein <code>_test</code> an den Namen angehängt.
* Die [[Datei search_engine_test.dart]]: testet die Klasse <code>SearchEngine</code>
* Die [[Datei helper_test.dart]]: testet die Funktionen.
= Programm compilieren =
== Linux ==
* Terminal öffnen
<pre>gdev ddouble
dcompile ddouble
</code>
Danach gibt es die Datei <code>/usr/local/bin/ddouble</code>.
Dieses Programm kann in der Eingabeaufforderung gestartet werden.
<pre>ddouble /home/Bilder
</pre>
== Windows ==
* Eingabeaufforderung starten
* <code>gdev ddouble</code>
* <code>dcompile ddouble</code>
Danach gibt es die Datei <code>c:\dev\bin\ddouble.exe</code>
Dieses Programm kann in der Eingabeaufforderung gestartet werden.
<pre>ddouble -r "main" "c:\Bilder"
</pre>

Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Info-Theke-Beiträge automatisch unter der „Gemeinfreiheit“ stehen (siehe Info-Theke:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)