Vyber riadku podla poctu pismen slova..

Programovacie jazyky, rady, poradňa...
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Príspevok od používateľa G0lDiER_ »

caute, potreboval by som napisat skript..

mal by som *.txt subor v ktorom by bolo asi toto:
auto motorka
pohar tanier
obrazok fotka
mapa atlas
a ja udam ze chcem aby mi naslo riadok, v ktorom ma prve slovo 4 pismena a druhe 5..tak ono mi ako output napise 4. ..akoze v stvrtom riadku su vhodne slova..

mapa = 4 pismena; atlas = 5 pismen

inak obcas by boli aj pripady, keby by vyhovovalo viac riadkov..tak tam by bolo dobre keby mi vypisalo vsetky vhodne..

dalo by sa to? :? ...jazyk je v podstate lubovolny..najlepsie by bolo BASH alebo PHP..dakujm :mnaminky:

//autoeditácia príspevku ( 08 Jan 2010, 15:28 )
pripadne nemusi napisat v ktorom riadku su vhodne slova, ale rovno nech napise tie slova..to je jedno :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

<?php
$subor = file("subor.txt");
$cisla = array(5,6);
$vysledok = array();

foreach($subor as $riadok){
	$tmp = explode(" ",$riadok);
	if(count($tmp) != count($cisla)) continue;
	$i = 0;
	$add = true;
	foreach($tmp as $slovo){
		if(strlen(trim($slovo)) != $cisla[$i++]) $add = false;
	}
	if($add) $vysledok[] = $riadok;
}

print_r($vysledok);

?>
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Príspevok od používateľa G0lDiER_ »

ja a php = 0 bodov..

kde udavam podmienky, kolko pismen maju mat tie slova? tu?

Kód: Vybrať všetko

$cisla = array(5,6); 
lebo ak ano, tak som tam na skusku dal 4,6 a v subor.txt som nechal to, co som v prvom prispevku udal ako priklad..cize ako output by mi malo dat ten prvy riadok; auto a motorka..no vypisuje mi iba toto: Array ( )..

treba tam upravit este nieco?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

motorka má 7 znakov a nie 6. Pochopil som to tak, že musia sedieť všetky slová s tými číslami, inak sa ten riadok nevráti
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Príspevok od používateľa G0lDiER_ »

ani pocitat neviem..hej, ma 7, ale aj tak to nejde..nastavim podmienky na 4,7 a aj tak sa mi vrati iba Array ( )..

http://nezmarrr.yw.sk/
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

máš na konci každého riadku medzeru, a keďže tie slová sekám podľa medzier, tebe v každom riadku naráta tri slová a teda ani ich dlžky nekontroluje lebo máš iba dve čísla. Daj buď $cisla = array(4,7,0); (ale potom na koniec posledného riadku musíš dať tiež medzeru) alebo pomaž medzery z konca každého riadku
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Príspevok od používateľa G0lDiER_ »

super :) funguje..len tie medzery tam asi musel pridat tento input na hojku, kedze ja som ich tam nepisal a do subor.txt som potom tie slova kopiroval odtialto..dakujem, K+..mozno este budem otravovat s niecim :P

napriklad..bolo by moc tazke spravit zadavanie tej podmienky ako input? Ze by som v prehliadaci napisal tie podmienky do formulara a odoslal?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nebolo
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Príspevok od používateľa G0lDiER_ »

nechcelo by sa to niekomu spravit, prosim? k+ samozrejma..
Napísať odpoveď