Microsoft Office Word
uređuje Dragan Grbić

 Office Praktikum | Mapa sajta 

 
Bookmark and Share
Matična strana sajta
Novo na sajtu
Mapa sajta
Beleške
Knjiga posetilaca
Kontakt

Prethodna stranica
Pretraga sajta
Pretraga MSKB

Blog Praktikuma
RSS feed 
 
Office Praktikum

Još o Wordu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

   

Sponzori sajta

  Connectivity by SBB
 
Connectivity by SBB

 

Informacije

NOVOSTI
Novi prilog o Wordu
Tri nova autorska članka
Četiri priloga o Accessu
Opis i uputstvo za alatku YuCirLat '08 (Word)

SADRŽAJ ZA PREUZIMANJE
YuCirLat '08 unapređena alatka za konverziju kodnih rasporeda u Wordu

SKREĆEMO PAŽNJU
Beleške: B(l)oga li ti tvoga!- prilog koji će nekog možda čak i da naljuti
Kako pretraživati MSKB
* a pronaći ćete i još mnogo novih sadržaja...

USKORO SERIJA ČLANAKA O OFFICEU 2010

POZIVAMO VAS
* i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.



  (C) 2000-2009 Praktikum na Webu
 

Makroi rasipaju memoriju

Nivo:  NIVO 3 - klinite za objašnjenje


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:

ActiveDocument.UndoClear

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:

Function BrisiUndo1

ToolsProtectDocument .DocumentPassword = "", .NoReset = 0, .Type = 0
ToolsUnprotectDocument

End Function

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:

Function BrisiUndo2

Dim dlgTR as ToolsRevisions
Getcurvalues dlgTR
ToolsRevisions .MarkRevisions = ABS(dlgTR.MarkRevisions - 1)
ToolsRevisions .MarkRevisions = dlgTR.MarkRevisions

End Function

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.

 

  (C) 2000-2009 Praktikum na Webu

PC 37


 
 

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.