Assoziative Array - Liste splitten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Assoziative Array - Liste splitten

    Hallo zusammen,
    ich habe eine Endlosliste in einem Textfile.
    Beispiel siehe unten.
    Jede Seite beginnt mit einer Kopfzeile die
    die Listenart und den Verkäufer benennt.
    Ein Verkäufer kann mehrere Seiten - demnach
    mehrere gleiche Kopfzeilen haben.
    Mein Ziel ist es nun die Liste pro Verkäufer
    zu splitten und in eine eigene Datei auszugeben. zb. 101121list.txt ....usw.
    Meine Idee war: aus Kopfzeile Listenart und Verkäufernummer auslesen, die nächsten Zeilen
    dann in eine Liste schreiben bis der nächste Verkäufer dran ist. Dann dies Liste einm asoz.Array zuweisen:
    %EinezelListe=($Verk=>@Inhalt);
    Hat da jemand eine Idee ?

    **##**LISTE=Umsatz LD=10 AN=101121 **##**
    10 24. 4 artikel 4 23.40 geliefert
    10 21. 4 artikel 3 55.40 offen
    07 24. 4 artikel 4 23.10
    11 24. 4 artikel 4 23.10 gedruckt
    ....
    **##**LISTE=Umsatz LD=10 AN=101121 **##**
    10 24. 4 artikel 4 23.40 geliefert
    10 21. 4 artikel 3 55.40 offen
    10 24. 4 artikel 4 23.10
    ...
    **##**LISTE=Umsatz LD=10 AN=101122 **##**
    10 24. 4 artikel 4 23.40 geliefert
    10 21. 4 artikel 3 55.40 offen
    10 24. 4 artikel 4 23.10
    10 24. 4 artikel 4 23.10 verrechnet
    ....


    open (INFILE, "$InFile") or die "\n\nKann $InFile nicht oeffnen !! ";
    while (<INFILE>){
    $therec=$_; chomp ($therec);

    if ($isset==1) {
    %Liste=($Verk=>@Inhalt);
    @Inhalt=""; $isset=0;
    }

    if ((substr($therec,0,6))eq'**##**') {

    @REC=split (/ /,$therec);
    @dummy=split (/=/,$REC[0]);
    $ListenArt=$dummy[1];
    @dummy=split (/=/,$REC[2]);
    $Verk=$dummy[1] ;$isset=0
    next;
    }

    push @Inhalt ,$therec."\n";

    }
    --------------------------------------------------------------------------
    Gone are the days when you could say "Those were the days."
    --------------------------------------------------------------------------
Lädt...
X