#!/usr/bin/perl -w use strict; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); my $query = new CGI; my $i; print "Content-type: text/html"."\n\n"; print "\n\nMassen berechnen\n\n"; print "\n\n"; #Abfrage der Werte: my @N; my @M; my @min; my @max; my @mehr; my $Masse; my $Abweichung; for ($i = 1; $i <= 10; $i++){ $N[$i] = $query->param("N".$i); $N[$i] = &Name($N[$i]); $M[$i] = $query->param("M".$i); $M[$i] = &Zahl($M[$i]); $min[$i] = $query->param("min".$i); $min[$i] = &Zahl($min[$i]); $max[$i] = $query->param("max".$i); $max[$i] = &Zahl($max[$i]); $mehr[$i] = $query->param("mehr".$i); $mehr[$i] = &Zahl($mehr[$i]); if ($min[$i] > $max[$i]){$min[$i] = $max[$i];} } my $Masse_soll = $query->param("Masse_soll"); $Masse_soll = &Zahl($Masse_soll); my $Abweichung_max = $query->param("Abweichung_max"); $Abweichung_max = &Zahl($Abweichung_max); my $DateiName = $query->param("DateiName"); $DateiName = &Name($DateiName); print "\n

"; print "Masse Soll: $Masse_soll Delta-max: $Abweichung_max - $DateiName\n
"; for (my $i1 = $min[1]; $i1 <= $max[1]; $i1++){ for (my $i2 = $min[2]; $i2 <= $max[2]; $i2++){ for (my $i3 = $min[3]; $i3 <= $max[3]; $i3++){ for (my $i4 = $min[4]; $i4 <= $max[4]; $i4++){ for (my $i5 = $min[5]; $i5 <= $max[5]; $i5++){ for (my $i6 = $min[6]; $i6 <= $max[6]; $i6++){ for (my $i7 = $min[7]; $i7 <= $max[7]; $i7++){ for (my $i8 = $min[8]; $i8 <= $max[8]; $i8++){ for (my $i9 = $min[9]; $i9 <= $max[9]; $i9++){ for (my $i10 = $min[10]; $i10 <= $max[10]; $i10++){ if ($mehr[1] == 0 || $i1 >= $i2){ if ($mehr[3] == 0 || $i3 >= $i4){ if ($mehr[5] == 0 || $i5 >= $i6){ if ($mehr[7] == 0 || $i7 >= $i8){ if ($mehr[9] == 0 || $i9 >= $i10){ $Masse = $i1*$M[1]+$i2*$M[2]+$i3*$M[3]+$i4*$M[4]+$i5*$M[5]+$i6*$M[6]+$i7*$M[7]+$i8*$M[8]+$i9*$M[9]+$i10*$M[10]; $Abweichung = abs ($Masse - $Masse_soll); if ($Abweichung <= $Abweichung_max){ print "
\n"; if ($i1 != 0) {print " $N[1]$i1";} if ($i2 != 0) {print " $N[2]$i2";} if ($i3 != 0) {print " $N[3]$i3";} if ($i4 != 0) {print " $N[4]$i4";} if ($i5 != 0) {print " $N[5]$i5";} if ($i6 != 0) {print " $N[6]$i6";} if ($i7 != 0) {print " $N[7]$i7";} if ($i8 != 0) {print " $N[8]$i8";} if ($i9 != 0) {print " $N[9]$i9";} if ($i10 != 0) {print " $N[10]$i10";} if ($Abweichung != 0){print " (Delta: $Abweichung)";} }#if ($Abweichung <= $Abweichung_max){ }#9>=10 }#7>=8 }#5>=5 }#3>=4 }#1>=2 }#10 }#9 }#8 }#7 }#6 }#5 }#4 }#3 }#2 }#1 print "\n

"; ######## Speichern der Abfrage ################## my $speichern = "?DateiName=".$DateiName."&Masse_soll=".$Masse_soll."&Abweichung_max=".$Abweichung_max; for ($i = 1; $i <= 10; $i++){ $speichern = $speichern."&N".$i."=".$N[$i]."&M".$i."=".$M[$i]."&min".$i."=".$min[$i]."&max".$i."=".$max[$i]."&mehr".$i."=".$mehr[$i]; } print "\n

Alle Parameter unter ".$DateiName."_Datum_Uhrzeit speichern.

"; print <<"EOM" ;
[Hauptseite]
Datei öffnen:
EOM print "\n\n\n"; exit(0); sub Name{ $_[0] =~ s/ä/ae/g; $_[0] =~ s/ö/oe/g; $_[0] =~ s/ü/ue/g; $_[0] =~ s/Ä/Ae/g; $_[0] =~ s/Ö/Oe/g; $_[0] =~ s/Ü/Ue/g; $_[0] =~ s/ß/ss/g; $_[0] =~ s/é/e/g; $_[0] =~ s/è/e/g; #doppelte Leerzeichen in einfache: $_[0] =~ tr/ //s; #alles mögliche durch - ersetzen $_[0] =~ tr/A-Za-z_0-9/-/c; #doppelte -- in einfache: $_[0] =~ tr/-//s; if ($_[0] eq ""){$_[0] = 0;} return $_[0];} sub Zahl{ $_[0] =~ s/,/\./g; $_[0] =~ s/ //g; $_[0] =~ tr/0-9\-\./_/c; $_[0] =~ s/_//g; if ($_[0] eq ""){$_[0] = 0;} return $_[0];}