Thread Datei splitten in mehrere Dateien (11 answers)
Opened by dave at 2011-11-18 14:11

GUIfreund
 2011-11-19 17:41
#154333 #154333
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
Guest dave
da ich ja fuer jedes Land eine Datei öffne (gleichzeitig), muss ich mir irgendwie merken, wohin ich den print mache, das wollte ich eigentlich mit dem hash.
Und genau das macht dein Kode. Funktioniert etwas bei dir nicht? Bei mir ist alles ok.

Allerdings weißt du sowieso, dass $lkzs{$CountryCode} jeweils den Wert $CountryCode hat. Du musst ihn also nicht im Hash speichern, kannst einfach schreiben
Code (perl): (dl )
   $lkzs{$CountryCode} = 1;
Den Hash brauchst du nur noch, um festzustellen, ob die Datei für $CountryCode schon geöffnet ist. Ansonsten kannst du überall $out durch $CountryCode ersetzen. Und wenn du den Test
Code (perl): (dl )
if (exists $lkzs{$CountryCode}){
durch
Code (perl): (dl )
if (fileno $CountryCode){

ersetzt, brauchst du den Hash gar nicht mehr. Damit landest du bei
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
if (fileno $CountryCode){
   print $CountryCode $satz;
} else {
   $land = $CountryCode;
   $datei = "$verzeichnis.$land.txt";
   open ($CountryCode,">:raw:utf8",$datei);
   print $CountryCode $header;
   print $CountryCode $satz;
}

Weitere Vereinfachungen überlasse ich dir zur Übung. Tipp: verschiebe
Code (perl): (dl )
   print $CountryCode $satz;

hinter das Ende der if-Konstruktion.
Gruß
GUIfreund

View full thread Datei splitten in mehrere Dateien