» »

BASIC - Šifriranje preglednice v OpenOfficu

BASIC - Šifriranje preglednice v OpenOfficu

EdHardy ::

Pozdravljeni,

prosil bi za pomoč pri nalogi in sicer:

NAVODILA:



TRENUTNA KODA:
REM  *****  BASIC  *****


 Function GesloVZrno(Geslo$) 
 hash = 7 
 maska = &H00FFFFFF 
 j = len(Geslo$) 
 if len(Geslo$) > 0 then 
   	 Do 
		znak = Mid(Geslo$,j,1)  
		A=asc(znak) 
		hash = 33*hash+A 
		hash = hash AND maska 
		j = j-1 
	 Loop While j>0 
 end if
 hash = hash and &H00007FFF 
 GesloVZrno = hash  
 end Function 



 Function  SifrirajCelico(Celica$, Zrno, Znacka$) 
 randomize(Zrno)
 dCelice = Len(Celica$)
 dZnacke = Len(Znacka$)

 If Len(Celica$)>0 Then 
	enacba = false 
	 znacka = false 
     If Mid(Celica$, 1, dZnacke) = Znacka$ Then
    	 znacka = true  
    	 Celica$ = Mid(Celica$, dZnacke + 1, dCelice - dZnacke)
    	 dCelice = Len(Celica$)
	 Elseif (Mid(Celica$,1,1)="=" OR Mid(Celica$,1,1)="-" OR Mid(Celica$,1,1)="+") Then 
 		 enacba = true 
	 End if

	j=1
	 Do Until j>dCelice  
 		 znak = Mid(Celica$,j,1) 
 		 A = Asc(znak)  
 		 If A>31 AND A<128 Then  
 			  B = CInt(rnd()*31) 
 			  A = A XOR B 
  			 menjava = Chr(A)
  			 Mid(celica$,j,1,menjava) 
 		 End if
 		 j=j+1 
	 Loop 


	 If (znacka=false AND (Mid(Celica$,1,1)="=" OR Mid(Celica$,1,1)="-" OR Mid(Celica$,1,1)="+")) OR enacba=true Then 
		 Celica$ = Znacka$ & Celica$
	 End If
 End If  
 SifrirajCelico = Celica$ 
 End Function 



Sub  SifrirajList(List, Zrno, Znacka$)
  oCell = List.GetCellbyPosition( 0, 0 )   
  oCursor = List.createCursorByRange(oCell)   
  oCursor.GotoEndOfUsedArea(True) 
  aAddress = oCursor.RangeAddress  
  stVrstic = aAddress.EndRow  
  stStolpcev = aAddress.EndColumn 

  For stolpec = 0 To stStolpcev                 
        For vrstica = 0 To stVrstic               
            oCell = List.GetCellByPosition(stolpec, vrstica)   
            vredn = oCell.Formula
            vredn = SifrirajCelico(vredn, Zrno, Znacka$)
            oCell.Formula = vredn             
           Next vrstica 
        Next stolpec 
End Sub



Sub Main
Znacka$ = "LUKA" 
Geslo$ = InputBox("Vstavi geslo", "Geslo", "E1087370") 
Zrno = GesloVZrno(Geslo$) 
ThisComponent.LockControllers 
For j=0 To ThisComponent.Sheets.getCount()-1 
	List=thisComponent.sheets(j) 
	SifrirajList(List, Zrno, Znacka$) 
Next j
ThisComponent.UnLockControllers 
End Sub


NAPAKA, KI JO JAVI AVTOMATSKO PREVERJANJE:


KOMENTAR ASISTENTA:
"Še vedno se makro ne izvede. Pade v prvi vrstici sifrirajList: oSheet spremenljivke nimate nikjer definirane! Po poročilo avtomatskega testa tudi dešifriranje v primeru značke na prvem mestu ne deluje pravilno."

Spremenljivko oSheet sem ze popravil in sicer v spremenljivko List

Težava je, da imam za oddajo le še eno možnost, zato več ni dosti prostora za napake. Posledično se obračam na vašo pomoč, saj sam nimam skoraj nobene podlage v basicu.


Lp

AC_DC ::

Writer nima debugerja ?

amacar ::

Če ne druga si izpiši (pred kodiranjem, med kodiranjem, po dekodiranju) in poglej če imaš enako, ne rabiš vsakič na netu preverjat.

Drugače pa je tukaj link do moje sprejete naloge (pred leti): http://www57.zippyshare.com/v/31I9qWdX/...

Še tole na prvi pogled:
oCell = List.GetCellbyPosition( 0, 0 )  


Pravilno je:
getCellByPosition

https://wiki.openoffice.org/wiki/Docume...

Bi pogledal podrobneje, pa se mi ne da inštalirati openoffica.

Zgodovina sprememb…

  • spremenil: amacar ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

pomoč excel

Oddelek: Pomoč in nasveti
383504 (2228) sax8er
»

excel+visual basic

Oddelek: Pomoč in nasveti
101557 (1444) švrk
»

EXCEL-VISUALBASIC

Oddelek: Programiranje
61109 (1012) bm0267
»

[excel] makro | excel -pomoc

Oddelek: Programiranje
111957 (1741) smetko
»

[Visual studio .NET] Rabim pomoč

Oddelek: Programiranje
91590 (1432) darkolord

Več podobnih tem