Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function SifrirajCelico(Celica$, Zrno, Znacka$)
- Randomize(Zrno)
- jeznacka=0
- zacetek=0
- konec=0
- j = Len(Znacka$)
- if Mid(Celica$,1,j)=Znacka$ then
- jeznacka=1
- Mid(Celica$,1,j)=""'Replace ni delal
- end if
- if Mid(Celica$,1,1)="=" then
- zacetek=1
- end if
- if Mid(Celica$,1,1)="+" then
- zacetek=1
- end if
- if Mid(Celica$,1,1)="-" then
- zacetek=1
- end if
- i=Len(Celica$)
- Do
- if i > 0 Then
- znak=Mid(Celica$,i,1)' Vzamemo trenutni znak
- A=Asc(znak)' Znak pretvorimo v ascii kodo in shranimo v A
- if (A > 31) AND (A <128) Then
- B=CInt(rnd()*31)
- A = A XOR B
- znak1=Chr(A)
- Mid(Celica$,i,1,znak1)
- end if
- i=i-1
- end if
- Loop While i>0
- if Mid(Celica$,1,1)="=" then
- konec=1
- end if
- if Mid(Celica$,1,1)="+" then
- konec=1
- end if
- if Mid(Celica$,1,1)="-" then
- konec=1
- end if
- ZaCelica = Celica$
- if zacetek = 0 AND konec=1 AND jeznacka=1 then
- ZaCelica = Znacka$ + ZaCelica
- end if
- if zacetek=1 AND konec=0 AND jeznacka=0 then
- ZaCelica = Znacka$ + ZaCelica
- end if
- SifrirajCelico=ZaCelica
- end Function
- Sub SifrirajList(oSheet, Zrno, Znacka$)
- ThisComponent.LockControllers ' Izklopimo posodabljanje zaslona
- oCell = oSheet.GetCellbyPosition( 0, 0 ) ' Na listu izberemo celico A1
- oCursor = oSheet.createCursorByRange(oCell) 'Ustvarmo navidezni kurzor, s katerim označimo območje
- oCursor.GotoEndOfUsedArea(True) ' ter se postavimo na konec uporabljenega območja
- aAddress = oCursor.RangeAddress ' zanima nas samo označeno območje
- stVrstic = aAddress.EndRow ' število zasedenih vrstic
- stStolpcev = aAddress.EndColumn ' število zasedenih stolpcev
- For stolpec = 0 To stStolpcev ' Na pravokotnem območju lista
- For vrstica = 0 To stVrstic ' preletimo vse indekse celic
- oCell = oSheet.GetCellByPosition( stolpec,vrstica )
- vredn = oCell.Formula 'Pridobimo formulo celice - dejansko vsebino celice
- vredn = SifrirajCelico(vredn, Zrno, Znacka$) ' Na tem mestu izvedemo operacijo (šifriranja) nad enačbo/vrednostjo s klicem funkcije SifrirajCelico
- oCell.Formula=vredn ' In vrednost zapišemo v celico
- Next vrstica
- Next stolpec
- ThisComponent.UnLockControllers 'Vklopimo posodabljanje zaslona
- end Sub
- Function GesloVZrno(Geslo$)
- maska = &H00FFFFFF
- i=1
- dolzina = Len(Geslo$)
- if dolzina > 0 then
- Do
- i=i+1
- znak=mid(Geslo$,i,1)
- A=Asc(znak)
- hash = 33*hash+A
- hash=hash AND maska
- Loop While i < dolzina
- end if
- hash=hash and &H00007FFF
- GesloVZrno=hash
- end Function
- sub Main
- geslo=InputBox("Vnos gesla:","Geslo","E1095647")
- niz=GesloVZrno(geslo)
- Znacka$="ZNACKA"
- i = ThisComponent.sheets.getCount()
- For j = 0 To (i - 1)
- list = ThisComponent.sheets(j)
- SifrirajList(list, niz, Znacka$)
- Next j
- MsgBox("Program je končan")
- end sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement