Új hozzászólás Aktív témák

  • doc
    nagyúr

    nem azert utalom, mert fuj microsoft meg fuj windows, hanem mert irtozatosakat szoptam vele, millioszor elofordult hogy a talalt megoldas nem mukoott, mert kiderult hogy 'ja igen, ez windows 2000-nel meg megvolt, aztan senki nem tudja miert, de a ms kivette, az xp-ben mar nem mukodik' :W

    raadasul erre a feladatra semmi nem indokolja a vbs-t, szovegfeldolgozasra perl, esetleg awk kell :)

    gyorsan osszedobtam egy ronda, de mukodo megoldast perlben az 1. problemara:

    my ($MAX, $last, $lastline, @prevs) = (4, -1,"");
    foreach (<>)
    {
    my $nr = (split(" ",$_))[2];
    print substr($lastline,0,20).($last+1).substr($prevs[$last+1],21) if (!($nr == 0 && $last == $MAX) && ($nr != ($last+1)) && (defined $prevs[$last+1]));
    $prevs[$last = $nr] = $lastline = $_;
    print;
    }

    a hasznalata siman ennyi:

    perl scriptedneve.pl < adatok.txt

    ha uj file-ba akarod iranyitani, akkor:

    perl scriptedneve.pl < adatok.txt > javitott.txt

    meg akkor mar legyen teljes, a masodik feladatot megoldo script:

    my $line = "";
    foreach (<>)
    {
    my @val = split;
    if ($val[2] == 0)
    {
    print "$line\n" if ($line ne "");
    $line = substr($_,0,20).$val[-1];
    }
    elsif ($line ne "")
    {
    $line .= " $val[-1]";
    }
    }
    print "$line\n";

    hasznalata ertelemszeruen perl scriptedneve.pl <javitott.txt

    vagy ha egyben akarod a kettot hasznalni:

    perl lapa1.pl <data.txt | perl lapa2.pl

    sot, ha POSIX-kompatibilis oprendszert hasznalsz (gyakorlatilag a windowson kivul barmi), akkor a script elejere biggyesztve a #!/usr/bin/perl -w sort es futtathato attributumot allitva, ennyi:

    lapa1.pl < data.txt | lapa2.pl

Új hozzászólás Aktív témák