Thread Dateistruktur überprüfen
(2 answers)
Opened by Gast at 2007-02-01 01:50
Hallo oes,
zunächst einmal ein paar Verbesserungsvorschläge zu deinem Code: Statt des globalen Filehandles DATEI_S empfehle ich eine private Variable. Ausserdem erwartet open() mehr als nur zwei Argumente. open my $fh, '<', $dateiname_s or die ... Statt auf den Angleoperator in der Schleife zurückzugreifen, empfehle ich dir eine andere private Variable zu nutzen. Der Angleoperator kann sehr schnell überschrieben werden. while (my $line = <$fh>) { ... } In deinem ersten Codestück wird für jede fehlerhafte Zeile der Dateiname nach @s_fail gepushed. Das möchtest du bestimmt nicht! Bei 100 fehler- haften Zeilen hast du in @s_fail 100 Mal den Dateinamen stehen. Wenn ich es richtig verstanden habe, dann ist dein wichtigstes Kriterium, dass jede Zeile 78 Zeichen lang ist und mit einer vierstelligen Ziffer beginnt. Alle anderen Zeilen sind fehlerhaft. Code: (dl
)
1 while (my $line = <$fh>) { Falls du nur auf fehlerhafte Zeichen in mehreren Dateien prüfen möchtest, dann wäre es wünschenswert, alle fehlerhaften Zeilen zur späteren Kontrolle festzuhalten. Sehr informativ wären hierbei wohl der Dateiname, die Zeilennummer und natürlich die Zeile selbst. Diese Informationen möchte man bestimmt auch nicht in einem Array behalten, denn je nach Anzahl der Dateien und Zeilen die geprüft werden und fehlerhaft sind, könnte das wohl deinen Speicher stark beanspruchen. Code: (dl
)
1 open my $out, '>', $file_out or die $!; Gruss, opi\n\n <!--EDIT|opi|1170317858--> What is a good module? That's hard to say.
What is good code? That's also hard to say. One man's Thing of Beauty is another's man's Evil Hack. |