| Autor | Správa |
Wpegb
 Užívateľ
 Založený: 29.06.2009 Príspevky: 61
 | Zaslal: Po 28.09.09 19:22 |   |
zdravim. mam nasledujuci kod:
| kód: | 'da veci do premennych
login = InputBox("Zadajte prihlasovacie heno", "Login")
pass = InputBox("Zadajte heslo", "Password")
meno = frm1.Text3.Text
priezvisko = frm1.Text4.Text
email = frm1.Text5.Text
telefon = frm1.Text6.Text
ucet = frm1.Text7.Text
adresa = frm1.Text8.Text
'vytvori dlhe čiselne heslo v premennej
hesloa = login
heslob = pass
dlzkaheslaa = Len(hesloa)
For i = 1 To dlzkaheslaa
heslo = heslo & Asc(Mid(hesloa, i, 1))
Next i
dlzkaheslab = Len(heslob)
For i = 1 To dlzkaheslab
heslo = heslo & Asc(Mid(heslob, i, 1))
Next i
heslocislo = heslo
'vyčistenie premennych
hesloa = ""
heslob = ""
dlzkaheslaa = ""
dlzkaheslab = ""
'sifrovanie mena
retazec = meno
dlzkaretazca = Len(retazec)
dlzkahesla = Len(heslo)
For i = 1 To dlzkaretazca
If a = dlzkahesla Then a = 0
a = a + 1
kriptor = Mid(heslocislo, a, 1)
pismeno = Mid(retazec, i, 1)
pismenox = (Asc(pismeno)) + kriptor
pismenoy = pismenox Xor heslocislo
celytext = celytext & "#" & pismenoy
Next i
menox = celytext |
je to len kusok. vypisuje mi to chybu. v programe ide o sifrovanie textu. myslim si že je chyba v typoch premennej, pretože premenna heslocislo byva velmi dlhe cislo ale nemam tam dat aku premennu pretože String nemôže spravit Xor a do Long nezmestm tolko čisiel. a z niekeho neznameho dôvodu mi nefunguje premenna Decimal. Neviete niekto čo s tym??? ak bude treba dodam dalšie info.
Dakujem  |
| |
  |
 |
Patkoo
 Užívateľ
 Založený: 02.11.2008 Príspevky: 85
 | Zaslal: Ut 29.09.09 10:29 |   |
co keby si poslal cely kod aj s deklaraciami ? |
| |
  |
 |
Wpegb
 Užívateľ
 Založený: 29.06.2009 Príspevky: 61
 | Zaslal: Ut 29.09.09 13:52 |   |
Včera som nemal vela času tak som to len tak na rychlo tu napisal. Tu je cely kod:
Kod formuláru (frm1):
| kód: | Private Sub cmm3_Click()
ulozit
End Sub
Private Sub cmm5_Click()
If MsgBox("Ste si isty že chcete vyčistit udaje????", vbYesNo + vbExclamation, _
"Vyčistenie") = vbYes Then
For Each objekty In frm1.Controls
If objekty.Tag = "vycistit" Then
objekty.Text = ""
End If
Next objekty
End If
End Sub
Private Sub cmm6_Click()
koniec
End Sub
Private Sub mnuinfo_Click()
info
End Sub
Private Sub mnukoniec_Click()
koniec
End Sub |
Kod modulu (module1):
| kód: | Public login As String
Public pass As String
Public meno As String
Public priezvisko As String
Public email As String
Public telefon As String
Public ucet As String
Public adresa As String
Public loginx As String
Public passx As String
Public menox As String
Public priezviskox As String
Public emailx As String
Public telefonx As String
Public ucetx As String
Public addresax As String
Public retazec As String
Public heslo As String
Public heslocislo As Double
Public hesloa As String
Public heslob As String
Public dlzkaretazca As String
Public dlzkahesla As String
Public dlzkaheslaa As String
Public dlzkaheslab As String
Public vyslednytext As String
Public pismeno As String
Public pismenox As Long
Public pismenoy As Long
Public kriptor As String
Public a As Long
Sub main()
Load frm1
frm1.Show
End Sub
Sub info()
MsgBox ("Súkromné informácie 1.0" & Chr(13) & Chr(10) & _
"Dátum vydania: ???" & Chr(13) & Chr(10) & "Hlavný programátor: Wpegb" & _
Chr(13) & Chr(10) & ":D :D :D :D")
End Sub
Sub koniec()
If MsgBox("Ste si isty že chcete ukončit program???? Všetky neuložené dáta budú stratené", _
vbYesNo + vbExclamation, "Koniec") = vbYes Then End
End Sub
Sub ulozit()
'da veci do premennych
login = InputBox("Zadajte prihlasovacie heno", "Login")
pass = InputBox("Zadajte heslo", "Password")
meno = frm1.Text3.Text
priezvisko = frm1.Text4.Text
email = frm1.Text5.Text
telefon = frm1.Text6.Text
ucet = frm1.Text7.Text
adresa = frm1.Text8.Text
'vytvori dlhe čiselne heslo v premennej
hesloa = login
heslob = pass
dlzkaheslaa = Len(hesloa)
For i = 1 To dlzkaheslaa
heslo = heslo & Asc(Mid(hesloa, i, 1))
Next i
dlzkaheslab = Len(heslob)
For i = 1 To dlzkaheslab
heslo = heslo & Asc(Mid(heslob, i, 1))
Next i
heslocislo = heslo
'vyčistenie premennych
hesloa = ""
heslob = ""
dlzkaheslaa = ""
dlzkaheslab = ""
'sifrovanie mena
retazec = meno
dlzkaretazca = Len(retazec)
dlzkahesla = Len(heslo)
For i = 1 To dlzkaretazca
If a = dlzkahesla Then a = 0
a = a + 1
kriptor = Mid(heslocislo, a, 1)
pismeno = Mid(retazec, i, 1)
pismenox = (Asc(pismeno)) + kriptor
pismenoy = pismenox Xor heslocislo
celytext = celytext & "#" & pismenoy
Next i
menox = celytext
End Sub |
Viem že kod je zbytočne dlhy niekotre veci by sa tam dali spravit jednoduksie.
Este tu davam screen:
 |
| |
  |
 |
Patkoo
 Užívateľ
 Založený: 02.11.2008 Príspevky: 85
 | Zaslal: St 30.09.09 17:22 |   |
Prva chyba moze byt v tom, ze nemas vo frm1 zadefinovane "Option explicit". Dalej, ak by som to uz robil pomocou Modulov, namiesto Sub by som pouzil Public Sub, kedze si osobne myslim, ze Sub plati iba vo vnutri Modula. Popripade by som pouzil Public function. V kazdej slucke by som pouzil inu premennu, nie vsade premennu "i". Taktiez si treba deklarovat premennu v aktualnom Sub-e (popr. Function-e), nie globalne.
Funkciu "ulozit" by som trocha pozmenil, a dal jej moznost zadania vstupnych parametrov, ako aj definovat tej funkcii nejaky vystup (napr. typu Boolean - true alebo false).
priklad:
frm1:
dim vystup as boolean
vystup = ulozit(meno.text,heslo.text,cislo.text)
-- vstupne parametre budu v podstate tvoje textboxy na formulari. vystup by bol typu boolean, podla toho, ci nenastala nejaka chyba pri vykonavani funkcie.
funkcia v module1 by vyzerala nejak takto:
Public Function ulozit(meno as string,heslo as string,cislo as string) as boolean
---- parametre funkcie, kodovanie xor a pod.
end function
Ak ti to stale nefunguje, alebo mas nejake nejasnosti, kludne napis. |
| |
  |
 |
Wpegb
 Užívateľ
 Založený: 29.06.2009 Príspevky: 61
 | Zaslal: Ut 06.10.09 21:14 |   |
Zatial dakujem ked si najdem trocha času tak to dam dako dokopi a potom napisem ci ide alebo nie.....
ešte raz Dakujem  |
| |
  |
 |
Wpegb
 Užívateľ
 Založený: 29.06.2009 Príspevky: 61
 | Zaslal: St 07.10.09 18:41 |   |
uz viem prečo to neslo.... robil som to tak ako si radi ale aj tak to pisalo chybu....
problem je alebo bol v tom že cislo ktore malo byt XOR-ovane bolo velmi dlhe... dal som to do cyklu tak aby bralo len každe piate cislo, teda je kračie a uz to ide..... Ked to dokončim cele tak sem hodim cley kod... |
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|