Autor | Zpráva | ||
---|---|---|---|
puzzle Profil |
#1 · Zasláno: 1. 5. 2011, 14:19:48
Ahoj potřeboval bych poradit mám dlouhý text a potřebovat bych z něj nějakým způsobem dostat nějaké potřebné věci, třeba do pole nebo nějak jinak šlo by to?
|
||
panther Profil |
#2 · Zasláno: 1. 5. 2011, 14:24:33
puzzle:
třeba regulárem. |
||
puzzle Profil |
#3 · Zasláno: 1. 5. 2011, 14:44:35
můžeš napsat konkrétně ty příkazy?
|
||
GeneralDv Profil |
#4 · Zasláno: 1. 5. 2011, 14:54:16
|
||
Stano Profil |
#5 · Zasláno: 1. 5. 2011, 14:56:41
|
||
puzzle Profil |
#6 · Zasláno: 1. 5. 2011, 15:25:46
Ten anglický manuál mě moc nepomože :(
Zkusím to trošku přiblížit, třeba výška 180cm jmeno blabla atd a je toho hodně a potřebuju to všechno rozdělit nějak Problém je že to neni jakoby jenom o jedno člověku jedno jmeno ale o více ... |
||
Louka Profil |
#7 · Zasláno: 1. 5. 2011, 15:36:08
puzzle:
Můžeš pracovat s těmi daty, pakliže v tom najdeš nějaké pravidlo. Skript, který by přečetl text, pochopil ho a následně ti vypsat, co se dozvěděl je podle mě zatím trochu sci-fi. Lze najít pozici řetězce např. "Jméno" a uložit si 2 slova co následují (jméno a příjmení), ale musí ten text být napsán "standardně". |
||
Stano Profil |
#8 · Zasláno: 1. 5. 2011, 15:42:21 · Upravil/a: Stano
[#6] puzzle pošli ukážku toho textu. bez toho ti asi konkrétnejšie nebude vedieť poradiť nikto
|
||
puzzle Profil |
#9 · Zasláno: 1. 5. 2011, 15:51:49
ukázka:
GK Mousa Da Rocha 18 0 3 0 Narozeniny 14 Kvě 2011 [18] Zkušenost 5% Odvaha 74% Tým 1.FC Krvavý Prapor Morálka 75% Obratnost 83% Forma 24–8–9–9–30 Fyzička 100% Skoky 79% Nejlepší výkon 30 Energie 0% Výkopy 70% Celkově 56% Rychlost 5% Hrát vpřed 77% Agresivita 13% Kontrola míče 13% Reflex 65% a tohoto je tam moc ale porad se to opakuje s jinýma hodnotama |
||
puzzle Profil |
#10 · Zasláno: 1. 5. 2011, 16:03:10
Louka:
„Můžeš pracovat s těmi daty, pakliže v tom najdeš nějaké pravidlo. Skript, který by přečetl text, pochopil ho a následně ti vypsat, co se dozvěděl je podle mě zatím trochu sci-fi. Lze najít pozici řetězce např. "Jméno" a uložit si 2 slova co následují (jméno a příjmení), ale musí ten text být napsán "standardně".“ nevím co myslíš tím standartně, ale to by se dalo použít... |
||
panther Profil |
#11 · Zasláno: 1. 5. 2011, 16:05:49
puzzle:
jestli máš ta zdrojová data plně pod kontrolou a můžeš s nimi manipulovat, doporučil bych na toto použít buď DB, nebo XML. Takto zpracovávat soubor a tahat z něj data regulárními výrazy mi jako moc dobrý nápad nepřijde. To řešení může mít dost nevýhod. |
||
Stano Profil |
#12 · Zasláno: 1. 5. 2011, 16:09:07 · Upravil/a: Stano
puzzle:
tak ako prvé si to rozdeľ na jednotlivých hráčov asi pomocou explode(); aj keď neviem či tam máš dáky špecifický znak medzi hráčmi. hádam hej. z toho ti vznikne array("hrac 1", "hrac 2", ....., "hrac n"); a potom to musíš deliť ďalej. function separate($string_before, $string_after, $content){ $content = stristr($content, $string_before); $content = stristr($content, $string_after, TRUE); return trim($content); } $content = "GK Mousa Da Rocha 18 0 3 0 Narozeniny 14 Kvě 2011 [18] Zkušenost 5% Odvaha 74% Tým 1.FC Krvavý Prapor Morálka 75% Obratnost 83% Forma 24–8–9–9–30 Fyzička 100% Skoky 79% Nejlepší výkon 30 Energie 0% Výkopy 70% Celkově 56% Rychlost 5% Hrát vpřed 77% Agresivita 13% Kontrola míče 13% Reflex 65% "; //aby si dostal "14 Kvě 2011 [18] Zkušenost 5% Odvaha 74%" //tak dáš: echo separate("Narozeniny", "Tým", $content); |
||
puzzle Profil |
#13 · Zasláno: 1. 5. 2011, 16:55:04
Hráči nejsou odděleni žádným specifickým znakem
zdroje pod kontrolou nemám vůbec je to pomůcka pro jednu on-line hru, takže data táhám přes CTRL+C, |
||
Louka Profil |
#14 · Zasláno: 1. 5. 2011, 17:04:07 · Upravil/a: Louka
Navážu na funkci separate:
Udělal bych si pole $vlastnosti kde by bylo $vlastnosti = Array("Narozeniny","Zkušenost","Odvaha","Tým","Morálka",...,"END"); // a tak dále, prostě to co chceš a nakonci END A pak bych to prošel: $hodnoty = Array(); $content .= "END"; // tím si zajistíš dělení až do konce for ( $i = 0; $i < count($vlastnosti)-1; $i++ ) { $hodnoty[$i] = separate($vlastnosti[$i],$vlastnosti[$i+1],$content); } |
||
Stano Profil |
#15 · Zasláno: 1. 5. 2011, 18:13:22 · Upravil/a: Stano
v tomto prípade by som to riešil asi takto:
najskôr by som function separate($string_before, $string_after, $content){ $content = stristr($content, $string_before); $content = stristr($content, $string_after, TRUE); return trim($content); } $hraci = explode("Narozeniny",$content); $vlastnosti = Array("Narozeniny","Zkušenost","Odvaha","Tým","Morálka",...,"END"); $j = 0; foreach($hraci as $hrac){ $hodnoty[$j]["meno"] = substr($hrac, strrpos($hrac, "%")); if($j != 0){ $hrac .= "Narozeniny $hrac END"; for ( $i = 0; $i < count($vlastnosti)-1; $i++ ) { $hodnoty[$j-1][$vlastnosti[$i]] = separate($vlastnosti[$i],$vlastnosti[$i+1],$hrac); } } $j++; } toto by mohlo fungovať |
||
puzzle Profil |
#16 · Zasláno: 1. 5. 2011, 18:39:19 · Upravil/a: puzzle
Absolutne to nechápu :(
a navíc to nefunguje |
||
Stano Profil |
#17 · Zasláno: 1. 5. 2011, 19:00:14 · Upravil/a: Stano
puzzle:
a upravil si: $vlastnosti = Array("Narozeniny","Zkušenost","Odvaha","Tým","Morálka",...,"END"); ,..., tam si musíš dopísať všetky tie staty čo tam máš a ešte raz si to skopíruj. chýbala tam bodkočiarka ukážka: http://artificium.6f.sk/skuska.php a tie funkcie si stačí vyhľadať a to pochopíš. nič zložité to nieje. |
||
puzzle Profil |
#18 · Zasláno: 1. 5. 2011, 20:59:31
JJ už to funguje, ale pořád nevím jkým způsobem si přišel k tomu příkladu nevím co mám vypsat...
|
||
puzzle Profil |
#19 · Zasláno: 1. 5. 2011, 22:35:37
No tak už jsem na to přišel ale má to problém že to vždycky to méno dalšího hráče přidá ještě k tomu prvnímu...
|
||
Stano Profil |
#20 · Zasláno: 1. 5. 2011, 23:50:36 · Upravil/a: Stano
puzzle:
áno pridáva a dá sa to jednoducho vyriešiť. ale riešenie si vymysli sám, aby si sa aj dačo naučil. potrebuješ spraviť presný opak tohoto substr($hrac, strrpos($hrac, "%")); substr("$string", cislo, cislo) - oreže string o počet znakov ktorý zadáš strrpos("string", "znak") - vyhľadá poslednu pozíciu znaku v stringu. substr($hrac, strrpos($hrac, "%")); - oreže v reťazci $hráč všetko pred posledným %; ty potrebuješ orezať všetko za posledným % http://php.net/manual/en/function.substr.php - pozri si príklady a hádam to dáko zmontuješ dokopy. ono nejdem ti tu vysvetľovať tie funkcie. bolo by to len čisté prepisovanie php.net a aj keď nevieš po anglicky tak keď si pozrieš tie príklady tak to pochopíš. |
||
puzzle Profil |
#21 · Zasláno: 2. 5. 2011, 20:18:10
No tak já nad tím popřemýšlím, ale ted jsem vyzkoušel tu funkci a nefunguje mi... :(
|
||
Stano Profil |
#22 · Zasláno: 2. 5. 2011, 20:56:39 · Upravil/a: Stano
puzzle:
nj nj čo už s tebo.... $hrac = substr($hrac, 0, strrpos($hrac, "%")); $hrac .= "END"; |
||
puzzle Profil |
#23 · Zasláno: 2. 5. 2011, 22:51:33
Já jsem ted myslel tu tvoji funkci tu separate ta nefunguje a nefunguje k vůli tomu parametru true, pokud tobe jede tak me řekni na jakém hostingu...
|
||
Stano Profil |
#24 · Zasláno: 2. 5. 2011, 23:28:57
puzzle:
sme sa podla mňa nepochopili. však vyššie si písal že ti to ide len to pridáva na koniec vždy jedno meno navyše. a to nemá nič spoločné s funkciou separate. to meno vyriešiš tým čo som ti poslal vyššie. mne ta funkcia funguje úplne dobre na endore.cz (http://artificium.6f.sk/skuska.php). |
||
Tori Profil |
#25 · Zasláno: 2. 5. 2011, 23:34:18
|
||
puzzle Profil |
#26 · Zasláno: 4. 5. 2011, 21:49:40
Díky snad už to zvládnu
|
||
Časová prodleva: 13 let
|
0