$file");# STDOUT # Eine Art Systemkommandos zu rufen open (INFO,"dir |");# pipe am Bsp. dir open (INFO,"| more");# pipe am Bsp. more"> $file");# STDOUT # Eine Art Systemkommandos zu rufen open (INFO,"dir |");# pipe am Bsp. dir open (INFO,"| more");# pipe am Bsp. more">

Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit."—  Präsentation transkript:

1 1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit

2 2 Dateien öffnen und schreiben open (INFO, $file);# Eingabe open (INFO,">$file");# Ausgabe open (INFO,">>$file");# Anhängen open (INFO,"<$file" );# Eingabe Version 2 close (INFO);# Niemals das # Schließen vergessen # Merke INFO ist nur Beispiel, Großbuchstaben!

3 3 Sonderfälle $file="-"; open (INFO, "$file");# STDIN open (INFO, ">$file");# STDOUT # Eine Art Systemkommandos zu rufen open (INFO,"dir |");# pipe am Bsp. dir open (INFO,"| more");# pipe am Bsp. more

4 4 Beispiel ( type / cat ) $file = "daten"; open(XYZ,$file) || die "Oeffnen $file $!"; # Fehler stets abfangen @lines= ;# Einlesen aus der Datei close(XYZ);# geöffnete Dateien # immer schließen print @lines;

5 5 Datei schreiben $out = "daten"; open (OUT,">$out") || die "Oeffnen $out $!"; print OUT "#$lines";# Schreiben der Datei close (OUT);

6 6 foreach foreach $zeile (@lines){ $a= length($zeile); print "$a\n"; } foreach $i (1..5,9,20..23,$a){ print "$i\n";} # foreach und for sind Synonyme

7 7 Aufgaben Fragen Sie den Namen einer Datei vom Benutzer ab. ( Der Name lautet: daten2-1.txt) Öffnen Sie die Datei und lesen sie ein. 2-1 Geben Sie alle Zeilen gefolgt von jeweils einer Leerzeile aus. 2-2 Geben Sie alle Zeilen in eine zweite Datei aus und stellen Sie jeweils ein # an das Ende jeder Zeile.

8 8 Vergleiche $a == $b# $a numerisch gleich $b? # Achtung: nicht = verwenden! $a != $b# $a numerisch ungleich $b? $a < $b# $a numerisch kleiner als $b? $a > $b# $a numerisch größer als $b? $a eq $b# $a textgleich $b? $a ne $b# $a textungleich $b? $a lt $b# $a textkleiner $b? $a gt $b# $a textgrößer $b?

9 9 Weitere Vergleichsoperationen ($a && $b)# Sind $a und $b wahr? ($a || $b)# Ist $a oder $b wahr? ($a)# Ist $a wahr? (! $a)# Ist $a falsch? # Möglich aber unüblich ($a and $b)# Sind $a und $b wahr? ($a or $b)# Ist $a oder $b wahr? (not $a)# Ist $a falsch?

10 10 Wahrheit @a = ('',' ','0',0,1,'PERL','UNWAHR'); foreach $aa (@a){ if ($aa){ print"|$aa| ist wahr\n"; } else { print"|$aa| ist falsch\n"; }

11 11 Ergebnis || ist falsch | | ist wahr |0| ist falsch |1| ist wahr |PERL| ist wahr |UNWAHR| ist wahr

12 12 if else $a= ; chomp $a;# chomp hier sehr wichtig # sonst ist $a immer wahr if (!$a) { print "Leere Zeichenkette!\n"; } else { print "$a\n";# Zeilenvorschub muß }# wieder dran

13 13 if elsif else $a= ; chomp $a; if (!$a) { print "Leere Zeichenkette!\n"; } elsif (length($a) < 10) { print "Kurze Zeichenkette!\n"; } else { die "Zeile zu lang\n"; # Stets else Zweig auswerten # Hier: Programmabbruch }

14 14 if und unless @a = ('',' ','0',0); if ($a[0]) {print 0}; #\ äquivalent print 0 if ($a[0]); #/ if (!$a[1]) {print 1}; #\ print 1 unless ($a[1]); # > äquivalent unless ($a[1]) {print 1}; #/

15 15 for for ($i = 0; $i < 10; $i++) {# hier entpricht print "$i\n";# ++$i $i++ }# Beachte: Feld- # trenner ; # foreach und for sind Synonyme

16 16 while print "Bitte Kennwort eingeben:"; $a = ; chomp $a; while ( $a ne "bla") { print "Falsch, bitte erneut versuchen:"; $a = ; chomp $a; }

17 17 do while do { print "Kennwort:"; $a = ; chomp $a; } while ( $a ne "bla");

18 18 do until do { print "Kennwort:"; $a = ; chomp $a; } until ( $a eq "bla");

19 19 Exkurs one-liner @a = ('',' ','0',0); foreach $aa (@a){ if ($aa){ print"|$aa| \n"; }

20 20 Äquivalent @a = ('',' ','0',0); foreach $aa (@a) { if ($aa) { print"|$aa|\n" } } Beachte: Das letzte Semikolon in einem Block kann weggelassen werden, speziell nach einer geschweiften Klammer ist es absolut unüblich.

21 21 Aufgabe 2-3 Benutzen Sie Ihre Dateiöffnungsprozedur Geben Sie die Datei ganz ohne vollständig leere Zeilen aus und zählen Sie diese. Geben Sie die Anzahl der leeren Zeilen aus.

22 22 Aufgabe 2-4 Benutzen Sie Ihre Dateiöffnungsprozedur. Geben Sie die Datei aus, bis Sie auf den Text: Schluss stoßen. Ab dieser Zeile geben Sie nicht mehr aus und beenden die Bearbeitung. Geben Sie die Anzahl der nicht leeren Zeilen aus. Die Zeile, die Schluss enthält, zählen Sie nicht mit.

23 23 Hausaufgabe 2-1 Die Datei daten2-2.txt enthält jeweils eine Zahl in einer Zeile. Öffnen Sie diese Datei. Lesen Sie 7 Zahlen in einer Schleife aus der Datei ein. Speichern Sie die gelesenen Eingaben in einer Liste ab. Bilden Sie die Summe über die ganze Liste. Geben Sie die Liste aus. Geben Sie die Summe aus.


Herunterladen ppt "1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit."

Ähnliche Präsentationen


Google-Anzeigen