1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
#!/usr/bin/perl $eingabe_endung = ".txt"; $ausgabe_excel = ".xls"; $ausgabe_ceda = ".csv"; @parameter = ('Raw', 'Normal'); #Verzeichnis einlesen opendir(IN, "./in/"); @dateien = readdir(IN); closedir(IN); foreach $datei(@dateien) { print $datei,"\n"; if ($datei eq '.' || '..') { shift @dateien; } $datei =~s/\.txt//g; } #Nebenprogramme #Maske erstellen sub vergleich { $vergleich = shift; foreach $parameter (@parameter) { if ($parameter eq $vergleich) { $rueckgabewert = 1; } else { $rueckgabewert = 0; } } } #Daten in Ausgabearray schreiben sub elemente_uebernehmen { if ($zaehler == 1) { shift @eingabe; } else { push(@ausgabe,shift(@eingabe)."\t"); #\t Tabulator als Trennelement für Excelausgabe } } #Hauptprogramm foreach $dateiname(@dateien) { $counter == 1; @ausgabe = undef; @spalten = undef; open (EINGABE, "./in/$dateiname".$eingabe_endung) or die "Fehler beim öffnen der Datei $!\n"; open(AUSGABEXLS, ">./out/$dateiname".$ausgabe_excel) or die "Fehler beim öffnen der Datei: $!\n"; while (<EINGABE>) { chomp(@eingabe = split(/\t/)); print $counter,"\n"; if ($counter == 1) { foreach $datensatz (@eingabe) { $rueckgabewert = 0; &vergleich($datensatz); if ($rueckgabewert == 1) { push(@spalten, 0); } else { push(@spalten, 1); } } $counter++; } elsif ($counter > 1) { foreach $zaehler (@spalten) { &elemente_uebernehmen($zaehler); } $counter++; push(@ausgabe, "\n"); } } print AUSGABEXLS @ausgabe; close (EINGABE) or die "Fehler beim schließen der Datei $!\n"; close (AUSGABEXLS) or die "Fehler beim schließen der Datei: $!\n"; }