Witam.
Proszę o pomoc w zoptymalizowaniu algorytmu.
Potrzebuje z bazy towarowej wydrukować etykiety (może być po kilka dla jednego towar - to jest sedno problemu).
W opisie towaru niektóre słowa są oznaczone *
co oznacza, że słowo na etykiecie ma być pogrubione.
W tej chwili robię to tak:
- Wrzucam do listy wszystkie etykiety do wydruku (czyli jeżeli dla danego towaru ma być 5 kopii wrzucam ją do listy 5 razy)
- Tworzę pętle lecącą po liście wstawiającą do zmiennej
Temp
treści kolejnych etykiet - Dla każdej etykiety tworzę pętle sprawdzającą kolejno słowa:
##jeżeli słowo nie zaczyna się od*
wykonujee.Graphics.DrawString(TmpWord, normalFont, drawBrush, RectWord);
##jeżeli słowo zaczyna się od*
wykonujee.Graphics.DrawString(Tmpord, BoldFont, drawBrush, RectWord);
Pozycja i wymiarRectWord
jest wyliczana dla każdego słowa w obrębie danej etykiety. - Po wydruku każdej etykiety wyliczana jest pozycja kolejnej.
Sposób działa poprawnie lecz dla towaru który ma 100 słów w opisie, a ma być 100 kopii jego etykiety pętle muszą wykonać w sumie 100*100 obrotów (100 razy sprawdzając to samo).
Niestety nie mam pomysłu jak to zoptymalizować...