Toto vlákno bylo označeno za vyřešené.
sparky29 0
Návštěvník
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";
}
}
KIIV ~ Moderátor
+43
God of flame
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
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky29 0
Návštěvník
to eq jsem tam mel ale nechce mi to vzit, ale prijdu na to
KIIV ~ Moderátor
+43
God of flame
no prirazeni nebude fungovat urcite.. chce to aspon porovnavani
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky29 0
Návštěvník
tu hodnotu nacitam s konfiguraku pomoci funkce SPLIT kde mam vstup vystup a hodnotu oddelenou "\t"
KIIV ~ Moderátor
+43
God of flame
a co je vubec to TF a TP??
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky29 0
Návštěvník
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
KIIV ~ Moderátor
+43
God of flame
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
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky29 0
Návštěvník
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";
}
#}
KIIV ~ Moderátor
+43
God of flame
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> ; ....
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky29 0
Návštěvník
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
KIIV ~ Moderátor
+43
God of flame
nemas celej ten zdrojak ... by se mi to hledalo lip nez tu psat kazdou existujici moznost...
Program vždy dělá to co naprogramujete, ne to co chcete...
sparky29 0
Návštěvník
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
sparky29 0
Návštěvník
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 ...
sparky29 0
Návštěvník
Vsechny 4 hodnoty mi funguji ale ta posledni nereaguje ...
sparky29 0
Návštěvník
$hodnota =~ s/[^a-z]/*/gi;
vypsalo to TP*'
:)
Diky za ochotu
KIIV ~ Moderátor
+43
God of flame
sak sem ti to rikal ... :D proto sem chtel ten vypis pomoci print " '$hodnota'\n" ... je tam hned videt:
'TP
'
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků
Přidej příspěvek
Uživatelé prohlížející si toto vlákno Uživatelé on-line: 0 registrovaných, 5 hostů