Thread Probleme mit If Bedingung
(4 answers)
Opened by guertelschnalle2 at 2011-09-28 16:10
Und wie wär's, einfach die Dollars als Datensatztrenner zu benutzen?
Code (perl): (dl
)
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 #!/usr/bin/perl use strict; use warnings; my $inputfilename = 'MeineEingabedatei.dat'; my $outputdir = 'MeinAusgabeVerzeichnis'; open my $in, '<', $inputfilename or die "$inputfilename: $!\n"; $/ = '$$$$'; # Datensatztrenner my $i = 0; # Zähler für Dateinamen auf Null initialisieren while (my $block = <$in>) { chomp $block; # Datensatztrenner abschneiden # Ausgabedateinamen formatieren, dreistellige Zahl mit führenden Nullen my $outfilename = sprintf ("./%s/Molekuel%03d.sdf", $outputdir, $i); # Block in Datei schreiben open my $out, '>', $outfilename or die "Ausgabe in $outfilename nicht möglich: $!\n"; print $out $block; # Das Schließen kann z.B. schief gehen, wenn zwischendurch die Platte vollläuft close $out or die "Schließen von Molekuel$i.sdf nicht möglich: $!\n"; ++$i; } close $in; Ich habe noch eine Formatierung der Ausgabedateinamen mit führenden Nullen hinzugefügt, was praktischer ist, wenn es mehr als zehn sind. (Und Molekül schreibt sich ohne h.) |