Microsoft Office Word |
|
|
Makroi rasipaju memorijuNivo:
Za razliku od VBA, WordBasic nema metodu za pražnjenje Undo bafera, pa se to mora simulirati da ne bi došlo do prezasićenja bafera i zastoja u radu makroa. Ponekad kada makro obrađuje veću količinu podataka, pojavljuje se poruka "Out of memory", a rad makroa se prekida. Najčešće je reč o većim manipulacijama nad tekstom: kopiranje, brisanje, zamene itd. Nakon takvog prekida, rad obično može da se nastavi ponovnim pozivanjem makroa. Uzrok ovog problema je prepunjavanje Undo bafera, koji je fiksne dužine i nema veze sa količinom RAM u računaru. Problem je u tome što se bafer neće prazniti do kraja izvršenja makroa, niti će u trenutku popune funkcionisati po FIFO principu. Jedini lek je povremeno eksplicitno pražnjenje Undo bafera. U Wordu 97/2000 nema problema, jer VBA ima odgovarajuću metodu: na prikladna mesta u kodu makroa (na početku i u petlji) valja uneti sledeći red:
Međutim, WordBasic nema sličnu metodu, pa treba pribeći triku da bi se bafer ispraznio. Postoje operacije u Wordu pre ili posle čijeg izvršenja se Undo bafer uvek prazni: njihovim aktiviranjem i odgovarajućom protivakcijom možemo dovesti do situacije koja će isprazniti bafer. Jedna od operacija sa ovim efektom je postavljanje zaštitne lozinke na dokument. Makro koji će isprazniti bafer bi mogao da izgleda ovako:
Druga metoda je naizmenično uključenje-isključenje praćenja revizija dokumenta. WordBASIC funkcija koja će isprazniti Undo bafer na ovaj način izgleda ovako:
Jedna od ovih funkcija treba da prati glavni makro, a njen poziv treba ubaciti na zgodno mesto. Obratite pažnju na moguće sporedne efekte izvršenja ovih makroa u WordBasicu: na primer, ako dokument već ima aktiviranu zaštitu, prvi od njih će pokvariti tu postavku. Stoga izaberite makro koji je prikladniji u konkretnom slučaju.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2009; Valinor Design; sva prava pridržana. |