#!/usr/bin/perl
### Interactiv-Mutt-Adressbuch (c) 2003 by I.S.

use warnings;

$filename = ".data.txt"; 

if (!(-f $filename)){        ### Datenfile anlegen falls nicht vorhanden
  open(W, ">.data.txt");
  close(W);
}

sub getdata {                ### Routine zum Oeffnen des Datenfiles 
  open(F, ".data.txt") || die "Ich kann das File .data.txt nicht oeffnen!";
  @all = <F>;
  close(F);
}

$mutt = shift || "nomutt";   ### Mutt-Ankopplung

if ($mutt eq "nomutt"){

out:while (1 == 1){          ### Programm-Loop

  print "\n";                ### Hauptmenue
  print "  +----------+\n";
  print "  |  MENUE   |\n";
  print "  +----------+\n\n";
  print "  1 - Info\n";
  print "  2 - Suche\n";
  print "  3 - Uebersicht\n";
  print "  4 - Erfassung\n";
  print "  5 - Ende\n";
  print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n";

  print "Wahl>";
  $opt = <STDIN>;
  chop($opt);

 if ($opt eq "2"){           ### Suche nach Begriffen 

    getdata();
    print "Suchbegriff>";
    $such = <STDIN>;
    chop($such);
    foreach $lauf (@all){
      next unless grep /$such/i, $lauf;
      @z = split /;/, $lauf;
      print "\n===> $z[1] $z[0]\n\n";
      print "Strasse:\t$z[2]\n";
      print "Stadt  :\t$z[3]\n\n";
      print "Privat :\t$z[4]\n";
      print "Handy  :\t$z[5]\n";
      print "Firma  :\t$z[6]\n";
      print "eMail  :\t$z[7]\n";
      print "\n";
    }
    print "\nPlease type <Enter> for Menue or 'q' for Quit>";
    $opt = <STDIN>;
    chop($opt);
    if ($opt eq "q"){
      last out;
    } else {
      next out;
    }

 } elsif ($opt == "3") {     ### Druckausgabe

    open(D, ">Druckdaten.txt");
    getdata();
    foreach $lauf (@all){
      @z = split /;/, $lauf;
      print D "\n===> $z[1] $z[0]\n\n";
      print D "Strasse:\t$z[2]\n";
      print D "Stadt  :\t$z[3]\n\n";
      print D "Privat :\t$z[4]\n";
      print D "Handy  :\t$z[5]\n";
      print D "Firma  :\t$z[6]\n";
      print D "eMail  :\t$z[7]\n";
      print D "\n";
    }
    close(D);
    print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    print "\nIm aktuellen Verzeichnis liegt die Druckdatei mit Namen: Druckdaten.txt\n\n";
    print "\nPlease type <Enter> for Menue or 'q' for Quit>";
    $opt = <STDIN>;
    chop($opt);
    if ($opt eq "q"){
      last out;
    } else {
      next out;
    }

 } elsif ($opt == "4") {     ### Datensatz anfuegen 

    print "\n";
    print "Vorname : ";
    $in2 = <STDIN>;
    chop($in2);
    print "Nachname: ";
    $in1 = <STDIN>;
    chop($in1);
    print "Strasse : ";
    $in3 = <STDIN>;
    chop($in3);
    print "Stadt   : ";
    $in4 = <STDIN>;
    chop($in4);
    print "Privat  : ";
    $in5 = <STDIN>;
    chop($in5);
    print "Handy   : ";
    $in6 = <STDIN>;
    chop($in6);
    print "Firma   : ";
    $in7 = <STDIN>;
    chop($in7);
    print "eMail   : ";
    $in8 = <STDIN>;
    chop($in8);
    open(F,">>.data.txt");
    for ($i=1; $i<9; $i++){  ### in das File schreiben 
      $out = "in" . "$i";
      if (length($$out) > 0){
        print F "$$out";
        print F ";";
      } else {
        print F "--";
        print F ";";
      }
    }
    print F "\n";
    close(F);
    print "\n";
    next out;

 } elsif ($opt == "1") {     ### Info-Page

    print "\n";
    print " +----------------------------------------------------+\n";
    print " | Dieses Programm ist optimiert fuer ein 80x25 Xterm |\n";
    print " +----------------------------------------------------+\n";
    print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    print " Programm (C) 2003 by I.S.";
    print "\n\n";
    print "\n\nPlease type <Enter> for Menue or 'q' for Quit>";
    $opt = <STDIN>;
    chop($opt);
    if ($opt eq "q"){
      last out;
    } else {
      next out;
    }
 } elsif ($opt == "5") {     ### Ende
    last out;
 } else {
    next out;
 }
}

} else {                     ### Mutt ruft

    getdata();
    print "\n";
    foreach $lauf (@all){
      next unless grep /$mutt/i, $lauf;
      @z = split /;/, $lauf;
      print "$z[7]\n" if grep/@/, $z[7];
    }
}

### EOP

