Autor Zpráva
dragon124
Profil
dobrý den,

potřebuji aby text zadaný do vstupního pole se rozložil do polepo jednom písmenku (např.: "ahoj" se roloží jako pole[0] = a

pole[1] = h pole[2] = o pole[3] = j. jak na to?

poté potřebuji to zase vypsat takže

pole[0] = a pole[1] = h pole[2] = o pole[3] = j

se vypíše jako "ahoj"

prosímvás jak na to?
okolojdouci
Profil *
Délku textu zjistíš pomocí strlen, pak cyklus pomocí for a v něm získáš jednotlivé znaky pomocí substr.
Jednotlivé znaky do pole přidáš pomocí $arr[] = $jedenznak;

Opačný postup - to složení do jednoho řetězce - uděláš pomocí foreach.
dragon124
Profil
děkuji, hele ale my sme

Diskuse » ActionScript ve Flashi » rozkouskování textu do pole
okolojdouci
Profil *
!!! pardon, překuk, omlouvám a mizím :-)
weroro
Profil
V akej verzii ActionScriptu?
Pre verziu 2.0 platí napr toto:

var tvojText:String = "ahoj";
var pole:Array = tvojText.split("");
trace(pole[2]); // vypíše znak "o" (bez úvodzoviek)


alebo

var tvojText:String = "ahoj";
var pole:Array = new Array ();
for (var i:Number = 0; i < tvojText.length; i++)
{
	pole[i] = tvojText.substring (i, i + 1);
}
trace (pole[3]); // vypise znak "j" (bez úvodzoviek)



Dá sa to samozrejme aj inak bez použitia pola ale o to si nežiadal :) Ak chceš použiť toto riešenie pre prácu s väčším množstvom textu, tak to nerob. Pole využíva celok pamäťového bloku, takže ak by si mal pole s napr. 10 000 prvkami bolo by to veľmi náročné na pamäť, aj keď je jasné, že pole je prehľadnejšie riešenie. Pri väčšom počte prvkov ukladaj všetko do samostatných premenných.

V druhom príklade je schválne použitá funkcia substring(), pretože funkcia substr(), ktorú by možno niekto navrhol vracia rozdiel dvoch posledných pozícií a to je v tomto prípade neželané. Ak by sme si dali vypísať obsah celého pola, naplneného pomocou substring() dostali by sme výpis a,h,o,j ak by sme ale použili pre naplnenie pola funkciu substr() pole by bolo naplnené takto a,ho,oj,j (A potom, že teória je človeku na nič :) )
dragon124
Profil
děkuji,
ale jak udělam sklládání textu?
weroro
Profil
Skladanie z čoho?
1. Chceš rozdeliť nejaký text, zamiešať znaky v ňom a následne znovu spojiť do jedného celku?
2. Chceš rozdeliť nejaký text, náhodne alebo podľa nejakých pravidiel vybrať znaky z toho textu, ktoré následne spojíš do jedného celku?

Ak chceš možnosť 1 použi funkciu join();

var novy_text:String = pole.join("");


Ak chceš možnosť 2, ja osobne by som použil funkciu charAt();
Toto je použitie pre náhodne generovanie nového reťazca.

var textik:String = "diskusia_JakPsatWeb"; // povodny retazec
var novy_text:String = ""; // prazdna hodnota noveho retazca
var pocet_znakov:Number = 5; // pocet znakov ktore bude obsahovat novy retazec
for (var i:Number = 0; i < _root.pocet_znakov; i++)
{
	_root.novy_text += _root.textik.charAt (int (Math.random () * _root.textik.length));
}
trace (_root.novy_text); // vypise obsah noveho retazca

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0