wykrywacz błędów w edytorze HTML

0

Witam.
Jestem tu nowy, chciałem zrobić swój programik zupełnie bez pomocy, ale już męczę się dość długo z pewną rzeczą, mam nadzieję, że mi pomożecie. Program mam już prawie na wykończeniu, i chcę aby, gdy osoba pisząca w moim programie gdy zrobi błąd, czyli np. zamiast w SynEdit wpisze: <htmk> zamiast <html> to w listbox'ie pojawi się wiadomość: Uwaga, wykryliśmy my błąd w lini 43 i gdy kliknę 2 razy w ten błąd, przeniesie mnie do tej linii, kompletnie nie mam pomysłu jak to zrobić, mam nadzieję, że coś pomożecie i że jasno wytłumaczyłem o co mi chodzi,
pozdrawiam Aloizy111.

0

zrób listę dostępnych tagów i sprawdzaj czy wpisany jest na liście

0

Aha dzięki, a wiesz jak zrobić, aby błąd wyskakiwał w nowej liniilistboxa a nie np w linii 0 lub 1 ??

0
Aloizy111 napisał(a)

gdy osoba pisząca w moim programie gdy zrobi błąd, czyli np. zamiast w SynEdit wpisze: <htmk> zamiast <html> to w listbox'ie pojawi się wiadomość: Uwaga, wykryliśmy my błąd w lini 43 i gdy kliknę 2 razy w ten błąd, przeniesie mnie do tej linii

Możliwości jest wiele - wszystko zależy od poziomu Twojej wiedzy;


Opcja łatwiejsza

Zrób (tak jak napisał Ci @Markness) listę tagów i sprawdzaj, czy wszystkie podane są prawidłowe; Musisz do tego zrobić mechanizm sprawdzający tekst i wyszukujący wszystkie tagi; Jest to dość proste do zrobienia, wystarczy Ci funkcja PosEx, jakaś lista tagów przechowywana np. w TStringList i trochę wyobraźni;


Opcja trudniejsza

Napisz swój własny parser HTML, który rozłoży cały kod na sekcje, dzięki czemu będziesz mógł sprawdzać wszystkie aspekty języka; Trudniej to będzie zrobić, ale także są to zwykłe operacje na łańcuchach (z RTL) i jakaś własna struktura danych; O różnych procedurach/funkcjach służących do operacji na łańcuchach możesz przeczytać w tym dziale;


Nie wiem w jaki sposób chcesz to sprawdzać, czy w locie (podczas wpisywania) czy podczas kompilacji (sprawdzania raz całego kodu strony) po kliknięciu w odpowiedni przycisk; Zrób to jak chcesz, jak napisałem - możliwości jest wiele;

Aloizy111 napisał(a)

a wiesz jak zrobić, aby błąd wyskakiwał w nowej liniilistboxa a nie np w linii 0 lub 1 ??

Do takich rzeczy służy metoda Add klasy TListBox - dodaje nową pozycję na końcu listy;

0

dzięki Furious Programming, użyję opcji trudniejszej :D

0
Aloizy111 napisał(a):

dzięki Furious Programming, użyję opcji trudniejszej :D

Tylko nie wracaj z płaczem że nie umiesz tego zrobić, my wiemy że nie umiesz. I nie, nie napiszemy tego za ciebie (w to się wlicza: zadawanie milionów pytań). Już mi się znudziły osoby które przeceniają swoje możliwości i najpierw gadają o czymś trudnym a potem zadają pytania o podstawy chcąc przejść od razu do pisania nie wiadomo czego.

0

Po co mam zadawać kolejne pytania, skoro on jużmi wszystko wytłumaczył ??

0

To może za niedługo przedstaw jakiś kod żeby nie było, że nie umiesz tego zrobić :]

Swoją drogą jak idzie? Masz już jakąś ciekawą klasę? Z chęcią przeanalizuję to, co już masz zaimplementowane;

1 użytkowników online, w tym zalogowanych: 0, gości: 1