Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. Function  SifrirajCelico(Celica$, Zrno, Znacka$)
  3.  
  4.     Randomize(Zrno)
  5.     jeznacka=0
  6.     zacetek=0
  7.     konec=0
  8.    
  9.     j = Len(Znacka$)
  10.     if Mid(Celica$,1,j)=Znacka$ then  
  11.      jeznacka=1
  12.       Mid(Celica$,1,j)=""'Replace ni delal
  13.        
  14.     end if
  15.    
  16.     if Mid(Celica$,1,1)="=" then
  17.     zacetek=1
  18.     end if
  19.     if Mid(Celica$,1,1)="+" then
  20.     zacetek=1
  21.     end if
  22.     if Mid(Celica$,1,1)="-" then
  23.     zacetek=1
  24.     end if
  25.    
  26.     i=Len(Celica$)
  27.     Do
  28.     if i > 0 Then
  29.         znak=Mid(Celica$,i,1)' Vzamemo trenutni znak
  30.         A=Asc(znak)' Znak pretvorimo v ascii kodo in shranimo v A
  31.         if (A > 31) AND (A <128) Then
  32.             B=CInt(rnd()*31)
  33.             A = A XOR B
  34.         znak1=Chr(A)
  35.         Mid(Celica$,i,1,znak1)
  36.         end if
  37.     i=i-1
  38.     end if
  39.     Loop While i>0
  40.    
  41.     if Mid(Celica$,1,1)="=" then
  42.     konec=1
  43.     end if
  44.     if Mid(Celica$,1,1)="+" then
  45.     konec=1
  46.     end if
  47.     if Mid(Celica$,1,1)="-" then
  48.     konec=1
  49.     end if
  50.  
  51.     ZaCelica = Celica$
  52.      if zacetek = 0 AND konec=1 AND jeznacka=1 then
  53.     ZaCelica = Znacka$ + ZaCelica
  54.     end if
  55.     if zacetek=1 AND konec=0 AND jeznacka=0  then
  56.     ZaCelica = Znacka$ + ZaCelica
  57.     end if
  58.      
  59. SifrirajCelico=ZaCelica
  60.      
  61. end Function   
  62.  
  63. Sub  SifrirajList(oSheet, Zrno, Znacka$)
  64.  
  65.   ThisComponent.LockControllers ' Izklopimo posodabljanje zaslona
  66.  
  67.   oCell = oSheet.GetCellbyPosition( 0, 0 )   ' Na listu izberemo celico A1
  68.   oCursor = oSheet.createCursorByRange(oCell) 'Ustvarmo navidezni kurzor, s katerim označimo območje  
  69.   oCursor.GotoEndOfUsedArea(True) ' ter se postavimo na konec uporabljenega območja
  70.   aAddress = oCursor.RangeAddress ' zanima nas samo označeno območje
  71.   stVrstic = aAddress.EndRow  ' število zasedenih vrstic
  72.   stStolpcev = aAddress.EndColumn ' število zasedenih stolpcev
  73.  
  74.   For stolpec = 0 To stStolpcev       ' Na pravokotnem območju lista          
  75.         For vrstica = 0 To stVrstic  ' preletimo vse indekse celic            
  76.             oCell = oSheet.GetCellByPosition( stolpec,vrstica )
  77.                vredn = oCell.Formula          'Pridobimo formulo celice - dejansko vsebino celice
  78.  
  79.                vredn = SifrirajCelico(vredn, Zrno, Znacka$) ' Na tem mestu izvedemo operacijo (šifriranja) nad enačbo/vrednostjo s klicem funkcije SifrirajCelico
  80.                
  81.                oCell.Formula=vredn            ' In vrednost zapišemo v celico
  82.            Next vrstica
  83.         Next stolpec
  84.        
  85.         ThisComponent.UnLockControllers 'Vklopimo posodabljanje zaslona
  86.        
  87. end Sub  
  88.      
  89. Function  GesloVZrno(Geslo$)
  90.  
  91.     maska = &H00FFFFFF
  92.    
  93.     i=1
  94.     dolzina = Len(Geslo$)
  95.     if dolzina > 0 then
  96.     Do  
  97.         i=i+1
  98.         znak=mid(Geslo$,i,1)
  99.         A=Asc(znak)
  100.         hash = 33*hash+A
  101.         hash=hash AND maska
  102.        
  103.     Loop  While i < dolzina
  104.     end if
  105.     hash=hash and &H00007FFF
  106.     GesloVZrno=hash
  107. end Function
  108.  
  109. sub Main
  110.     geslo=InputBox("Vnos gesla:","Geslo","E1095647")
  111.     niz=GesloVZrno(geslo)
  112.     Znacka$="ZNACKA"
  113.     i = ThisComponent.sheets.getCount()
  114.     For j = 0 To (i - 1)
  115.      list = ThisComponent.sheets(j)
  116.      SifrirajList(list, niz, Znacka$)
  117.     Next j
  118.     MsgBox("Program je končan")
  119. end sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement