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.
zrób listę dostępnych tagów i sprawdzaj czy wpisany jest na liście
Aha dzięki, a wiesz jak zrobić, aby błąd wyskakiwał w nowej liniilistboxa a nie np w linii 0 lub 1 ??
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;
dzięki Furious Programming, użyję opcji trudniejszej :D
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.
Po co mam zadawać kolejne pytania, skoro on jużmi wszystko wytłumaczył ??
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;