Projekt DSuche: Unterschied zwischen den Versionen

Aus Info-Theke
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[1], caseSensitive: false);
     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, 23: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 Datei dsuche.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);
      }
    }
  }
}