Hirdetés
- ThinkPad (NEM IdeaPad)
- Utolérte a komponenshiány az OLED-es Steam Decket
- Kormányok / autós szimulátorok topikja
- Gaming notebook topik
- Fejhallgató erősítő és DAC topik
- AMD GPU-k jövője - amit tudni vélünk
- Azonnali alaplapos kérdések órája
- Pendrive irás-olvasás sebesség
- Melyik tápegységet vegyem?
- Házimozi haladó szinten
Új hozzászólás Aktív témák
-
cucka
addikt
válasz
PazsitZ
#3903
üzenetére
Még korábban én is barkácsoltam ilyen rövidítő kódot, de nem olyan egyszerű (még az enyém sincs kész csak félig-meddig ), mondjuk nálam az is szempont, hogy a szövegben lévő tag-ek is érvényesek maradjanak.
Pedig ez nem túl bonyolult feladat, a lényege, hogy szét kell bontani szavakra a szöveget. Kétfajta szó lesz benne: html tag-ek és sima szavak. Ezután végigmész a szavakon és a következő algoritmust használod (kell hozzá egy verem és fontos a sorrend):
- Ha az aktuális szó nem html tag, akkor kiírod az output-ra és növeled a kiírt karakterek/szavak számát.
- Ha az aktuális szó nyitó és záró tag egyben, akkor kiírod az output-ra. (Például ilyen a <br />, aminek nincs záró tag-je, mert már le van zárva).
- Ha az aktuális szó html nyitó tag, akkor kiírod az output-ra és a html tag-et lerakod a verembe. (tehát csak magát a tag-et, az attribútumokat nem). Példa egy veremre: {'span', 'a', 'div'}
- ha az aktuális szó egy html lezáró tag (pl. </div>), akkor kiírod az output-ra és a veremből addig dobálod ki a tag-eket, amíg ki nem dobtad az aktuális html lezáró tag párját.Az iterációnak akkor van vége, ha elfogytak a szavak, vagy a kiírt karakterek/szavak száma elérte az előre meghatározott limitet. Ezután a veremben maradt elemeket kidobálod és mindegyikre kiírod a hozzá tartozó lezáró html tag-et. (Tehát ha a verem tetején egy div tag van, akkor azt fogod kiírni, hogy </div>, ezután pedig kiszeded a veremből.
Az algoritmus pár lényeges tulajdonsága:
- Megőrzi a html tag-eket.
- Csak a képernyőn látható betűket/szavakat számolja, a html tag-eket nem.
- Ha a szövegedben vannak lezáratlan tag-ek, akkor is működik. Ha a szövegben olyan lezáró tag van, aminek nincs nyitó párja, akkor nem működik helyesen, de kiegészíthető, hogy erre az esetre is jó legyen.
- Az algoritmus kimenetében nem lesznek lezáratlan html tag-ek.
- Bizonyos tag-eket a böngészők automatikusan lezárnak (pl. br, hr), ezek felismerésével ki kell egészíteni az algoritmust.
Új hozzászólás Aktív témák
- Elektromos autók - motorok
- Samsung Galaxy Watch5 Pro - kerek, de nem tekerek
- ThinkPad (NEM IdeaPad)
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Utolérte a komponenshiány az OLED-es Steam Decket
- Samsung Galaxy Felhasználók OFF topicja
- Kormányok / autós szimulátorok topikja
- Gaming notebook topik
- Fejhallgató erősítő és DAC topik
- Miskolc és környéke adok-veszek-beszélgetek
- További aktív témák...
- LG 45GS95QX - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- szinteÚJ Dell Pro 14 Ultra 7 255U 16GB DDR5 1TB AI PC FHD+
- í kilenc! AKCIÓS PRECÍZIÓS KÉSZÜLÉK! 7560 i9-11950H 32GB RAM 1TB SSD Nvidia RTX A3000 6GB 1 év gar
- iKing.hu Apple MacBook Pro 14 (2021) 16GB / 1TB használt, karcmentes 83% akku
- Új HP 15 Victus FHD IPS 144Hz i5-13420H 4.6Ghz 16GB 512GB SSD Nvidia RTX 3050 6GB Win11 Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


