Projekt DSuche: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 40: | Zeile 40: | ||
} else { | } else { | ||
final lines = File(args[1]).readAsLinesSync(); | final lines = File(args[1]).readAsLinesSync(); | ||
RegExp regExp = RegExp(args[ | RegExp regExp = RegExp(args[0], caseSensitive: false); | ||
for (var line in lines){ | for (var line in lines){ | ||
if (regExp.firstMatch(line) != null){ | if (regExp.firstMatch(line) != null){ |
Version vom 24. Dezember 2020, 21:10 Uhr
Zielsetzung
Es wir ein Kommandozeilenprogramm erstellt, das reguläre Ausdrücke in einer Datei sucht.
Kenntnisse
- Projekt erstellen
- Programmargument auswerten
- Paket importieren
- Datei lesen
Projekt erstellen
- IdeaIC starten
- Linke Spalte: "Projects" anklicken
- "New Project"
- Linke Spalte: "Dart"
- Dart-SDK:
- Windows: c:\dart-sdk
- Linux: ~/dart-sdk
- Es erscheint eine Listbox, dort
Console-Application a command-line application sample
anklicken Next
-Button- Project name:
dsuche
Finish
-Button
Damit ist das Projekt erstellt.
Projekt erkunden
- Linke Spalte:
Projects
anklicken - Es wird ein Ordner namens
dsuche
sichtbar - auf das Symbol ">" klicken, dann klappt das Verzeichnis aus
- Im Unterverzeichnis
bin
liegt die Datei mit dem Hauptprogramm,dsuche.dart
- Im Unterverzeichnis
lib
liegt eine zweite Dateidsuche.dart
, die ergänzenden Code enthält. In diesem Projekt brauchen wir diese Datei nicht. also löschen:Rechte Maustaste - Delete
- ziemlich unten gibt es die Datei
pubspec.yaml
Dort werden Pakete eingetragen. In diesem Projekt brauchen wir nichts zusätzliches, daher bleibt die Datei unverändert.
Programmcode in dsuche.dart
Kopiere folgenden Code in die Datei bin\dsuche.dart
import 'dart:io'; /// Durchsuchen einer Datei nach einem regulären Ausdruck. /// [args]: Programm-Argumente, z.B. [r'https?://', 'rechnung.txt'] void main(List<String> args) { if (args.length < 2){ print('Gebrauch: dsuche <suchmuster> <date>\nBeispiel: dsuche "https?://" rechnung.txt'); } else { final lines = File(args[1]).readAsLinesSync(); RegExp regExp = RegExp(args[0], caseSensitive: false); for (var line in lines){ if (regExp.firstMatch(line) != null){ print(line); } } } }