CASE alternativa PERL ? – Regulární výrazy – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

CASE alternativa PERL ? – Regulární výrazy – Fórum – Programujte.comCASE alternativa PERL ? – Regulární výrazy – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
sparky290
Návštěvník
4. 10. 2013   #1
-
0
-

Prosim o radu 

Potreboval bych aby se vyhodnotila pouze jedna vetev, ale nejde mi to 

if ($hodnota = TF){
    for $j (0..$pocet_radku-1){
        push(@{@vektory_tf->[$j]},${@matice->[$j]}[0]);            # jde i @
        print OUTPUT @{@vektory_tf->[$j]};
        print OUTPUT"\n";
    }
}

elsif ($hodnota = TP){
    for $j (0..$pocet_radku-1){
        push(@{@vektory_tp->[$j]},${@matice->[$j]}[0]);            # jde i @
        print OUTPUT @{@vektory_tp->[$j]};
        print OUTPUT"\n";
    }
}

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #2
-
0
-

no textovy hodnoty se porovnavaj pomoci eq nebo ciselny se srovnavaji pomoci == 

case se da udelat treba hashem: klic pro srovnani a reference na funkci v hodnote... :D

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #3
-
0
-

to eq jsem tam mel ale nechce mi to vzit, ale prijdu na to 

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #4
-
0
-

no prirazeni nebude fungovat urcite.. chce to aspon porovnavani

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #5
-
0
-

tu hodnotu nacitam s konfiguraku pomoci funkce SPLIT kde mam vstup vystup a hodnotu oddelenou "\t"

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #6
-
0
-

a co je vubec to TF a TP??

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #7
-
0
-

TP - pritomnost slova (0, 1)

TF - pocet vyskytu (0 a vic)

Vektor unikatnich slov = hlavicka

# TP

good bad yellow school

1       0     1         0        #radek 1

0      1     1         0        # radek 2 

# TF 

good bad yellow school

3       0      2        0          # radek 1

hodnoty uz mam vypocitany a mam je ulozeny v jednotlivych strukturach ted potrebuju jenom aby se mi ve vystupu objevil jenom jeden typ dat

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #8
-
0
-

ja jen ze promenne bez $ @ % jsou uz maximalne funkce nebo file descriptory....

takze kdo vi, jestli tam nechces spis neco jako    if ($hodnota eq 'TF')   a tak

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #9
-
0
-

to jsem tam mel ale nezapisovalo to vubec do vystupu

#if ($hodnota eq 'TF'){
    for $j (0..$pocet_radku-1){
        push(@{@vektory_tf->[$j]},${@matice->[$j]}[0]);            # jde i @
        print OUTPUT @{@vektory_tf->[$j]};
        print OUTPUT"\n";
    }
#}

#elsif ($hodnota eq 'TP'){
    for $j (0..$pocet_radku-1){
        push(@{@vektory_tp->[$j]},${@matice->[$j]}[0]);            # jde i @
        print OUTPUT @{@vektory_tp->[$j]};
        print OUTPUT"\n";
    }
#}

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #10
-
0
-

tak jedine jeste vypsat   print "'".$hodnota."'\n"; jestli tam nemas jeste nejaky paskvil ... nejaky smeti jako enter na konci radku kdyz nacitas pomoci  $radek = <FILE> ;   ....  

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #11
-
0
-

kdyz odstranim ty IF konstrukce tak se vystup udela ale jak chci jednu tak pouze hlavicka  a v hodnote nemam zadny smeti 

ps. ve Vim ten vystup vypada lip 

very    good    bad    blue    red    yellow    _CLASS_    
0    2    0    0    0    0    _P
1    4    0    0    0    0    _P
0    2    0    0    0    2    _N
0    0    2    2    2    0    _N
4    0    2    0    0    0    _N

0    1    0    0    0    0    _P
1    1    0    0    0    0    _P
0    1    0    0    0    1    _N
0    0    1    1    1    0    _N
1    0    1    0    0    0    _N

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #12
-
0
-

nemas celej ten zdrojak ... by se mi to hledalo lip nez tu psat kazdou existujici moznost...

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #13
-
0
-

use utf8;
use open qw( :encoding(UTF-8) :std );

$soubor = "konfigurace.txt";
open(KONFIGURACE, "<:encoding(UTF-8)", $soubor) || die "Nelze otevrit soubor: $!";

$radek_konf = <KONFIGURACE>;
($in_soubor, $out_soubor, $min_cetnost, $min_delka, $hodnota) = split("\t",$radek_konf);

sub tiskniOdsazeni {
    print "\n";
    print "\n";
}

close(KONFIGURACE);

sub rozdelRadek($) {
    my $radek = $_[0];
    ($trida, $retezec) = split("\t",$radek);
        $retezec =~ s/<(.*?)>//g;        
            #http://snipplr.com/view/4865/
        $retezec =~ s/&[a-z]*;//g;
        $retezec =~ s/[[:punct:]]//g;
        $retezec =~ s/  / /gi; 
        $retezec = lc($retezec);
    my @slova_ret = split(' ', $retezec);            # tady musi byt 'my' !!! kdyz se funkce pouzila prepisovala se furt
    return($trida, \@slova_ret); 
}

open(INPUT, "<:encoding(UTF-8)", $in_soubor) || die "Nelze otevrit soubor: $!";
@matice = ();
$pocet_radku = 0;
while (my $radek_in = <INPUT>){
    $pocet_radku = $pocet_radku + 1;
    my @vektor = rozdelRadek($radek_in);
        push(@matice, [@vektor]);
}
close(INPUT);

konfigurace.txt

vstup.txt    vystup.txt    1    2    TP

Nahlásit jako SPAM
IP: 195.178.73.–
sparky290
Návštěvník
4. 10. 2013   #14
-
0
-

musi byt urcite chyba v tom vytazeni hodnot protoze kdyz udelam

if ($in_soubor eq 'vstup'){

print "provedlo se";

}

tak se to provede ale kdyz to udelam s hodnotou tak ne ...

Nahlásit jako SPAM
IP: 195.178.73.–
sparky290
Návštěvník
4. 10. 2013   #15
-
0
-

Vsechny 4 hodnoty mi funguji ale ta posledni nereaguje ...

Nahlásit jako SPAM
IP: 195.178.73.–
sparky290
Návštěvník
4. 10. 2013   #16
-
0
-

$hodnota =~ s/[^a-z]/*/gi;

vypsalo to TP*' 

:) 

Diky za ochotu

Nahlásit jako SPAM
IP: 195.178.73.–
KIIV
~ Moderátor
+43
God of flame
4. 10. 2013   #17
-
0
-

sak sem ti to rikal ... :D  proto sem chtel ten vypis pomoci   print " '$hodnota'\n"  ... je tam hned videt:

'TP

'

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky290
Návštěvník
4. 10. 2013   #18
-
0
-

rozumim diky :)

Nahlásit jako SPAM
IP: 195.178.73.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

PERL problem — založil sparky29

Pruchod graf Perl — založil sparky29

Perl web framework — založil Danielle

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý