• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Logika edytora tekstowego

Object Storage Arubacloud
0 głosów
220 wizyt
pytanie zadane 20 maja 2016 w C i C++ przez Koko$ Użytkownik (740 p.)
Witam, w ramach projektu muszę zrobić program reprezentujący logikę edytora tekstowego. Jak myślicie, w jaki sposób "trzymać" tekst? Po wyrazie - brak możliwości np. pogrubienia połowy wyrazu. Po literze - nie brzmi zbyt optymalnie jeżeli każdą literą będzie obiekt klasy, która ma kilka pól. Ma ktoś jakiś pomysł?

4 odpowiedzi

0 głosów
odpowiedź 20 maja 2016 przez niezalogowany

Jeżeli tekst ma mieć jakiś format, to po prostu wrzucasz go w dodatkowe tagi, jak w np html (czy bbcode), czyli jeżeli chcesz trzymać: "To jest częściowo pogrubiony tekst", to jako string możesz go trzymać następująco: "To jest [b]częściowo pogrubiony tekst[/b]", pojawia się też kilka innych ciekawych problemów związanych z takim formatowaniem (są łatwe do rozwiązania), ale o nich później - daj znać czy o coś takiego ci chodzi

komentarz 20 maja 2016 przez Koko$ Użytkownik (740 p.)

Prawdopodobnie tak będę wyświetlał/zapisywał. Myślałem właśnie żeby jakaś tam klasa TextFile która przechowuje tekst oraz dane o obrazkach,tabelach itd. Obrazki i tabele zrobiłem jako vektory odpowiednich klas. Ale nie wiem w jaki sposób kontenerować tekst. Jeżeli zrobie sobie vektor słów gdzie słowo to będzie klasa z tym słowem, oraz informacjami czy jest pogrubione, podreślone, rozmiar, czcionka itd itd. Ale wtedy pojawia się problem np. TEKST. Nie jestem w stanie takiego czegoś zrobić

komentarz 20 maja 2016 przez niezalogowany
No to format tekstu w stylu bbcode / html, o którym już zdążyłem wspomnieć
0 głosów
odpowiedź 20 maja 2016 przez mbabane Szeryf (79,280 p.)

W ksiazce: Erich Gamma, Richard Helm, Ralph Johnson, John Vilissides "Wzorce projektowe - Elementy oprogramowania obiektowego wielokrotnego użytku" jest cały rozdzial poswiecony projektowaniu edytora dokumentow, co prawda bardziej edytora w stylu Word czy Writer, ale byc moze znajdziesz jakies natchnienie.

 

0 głosów
odpowiedź 21 maja 2017 przez Tomek Sochacki Ekspert (227,510 p.)
A może podobnie jak robi to Word, czyli zapis w plikach XML?

Jeśli interesuje Cię jak to jest zrobione w Office to proponuję, abyś wziął dowolny plik *.doc / *.docx i zmienił rozszerzenie na .zip (ale rozszerzenie, a nie dodanie tego w nazwie, czyli skorzystaj w winie np. z total commander). Gdy otworzysz to archiwum to zobaczysz komplet folderów i plików XML.
0 głosów
odpowiedź 21 maja 2017 przez Chess Szeryf (76,710 p.)
edycja 21 maja 2017 przez Chess

Możesz to wykonać za pomocą wyrażeń regularnych, np.:

preg_replace('@\b(echo)\b@',"<strong>$1</strong>","echo");

Jeśli chciałbyś zrobić to w JS, to byłoby to mniej więcej tak: Używasz funkcji, które zaznaczają tekst, chyba selection + range i wtedy po naciśnięciu ikonki pogrubienia pogrubiłoby ci tekst.

w jaki sposób "trzymać" tekst?

Tekst możesz trzymać np. w pliku XML. A zrobić to możesz w ten sposób:

<functions>
echo print function return
</functions>

W kodzie zaś napisałbyś instrukcję, która określałaby, że po znaku spacji występuje już następne słowo. Jeśli chciałbyś zaznaczyć, np. połowę słowa to mógłbyś to zrobić w ten sposób:
 

if(already_is_next_word this selection only_3_first_letters){
   echo //tu następuje pobranie 3 pierwszych znaków, np. ze słowa echo, czyli byłoby to: ech;
   zakładam, że wszystko pomiędzy <functions></functions> będzie pogrubione, wtedy
   pobieramy ostatnie litery po tych 3. i nadajemy im format bez pogrubienia i będzie już                    
   "unstrong", czyli bez pogrubienia.
}

 

Podobne pytania

+2 głosów
1 odpowiedź 484 wizyt
pytanie zadane 27 października 2019 w C i C++ przez Tomcio2000 Użytkownik (900 p.)
+1 głos
2 odpowiedzi 495 wizyt
pytanie zadane 30 maja 2022 w HTML i CSS przez okti00 Obywatel (1,300 p.)
0 głosów
1 odpowiedź 241 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...