| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 29.06.09 Prihlásený: 23.02.11 Príspevky: 61 Témy: 13 | Napísal Wpegb: 28.09.2009 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
|
|
Registrovaný: 02.11.08 Prihlásený: 10.08.12 Príspevky: 85 Témy: 1 | Napísal Patkoo: 29.09.2009 10:29 | |
|
co keby si poslal cely kod aj s deklaraciami ?
|
|
Registrovaný: 29.06.09 Prihlásený: 23.02.11 Príspevky: 61 Témy: 13 | Napísal autor témy Wpegb: 29.09.2009 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:
|
|
Registrovaný: 02.11.08 Prihlásený: 10.08.12 Príspevky: 85 Témy: 1 | Napísal Patkoo: 30.09.2009 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.
|
|
Registrovaný: 29.06.09 Prihlásený: 23.02.11 Príspevky: 61 Témy: 13 | Napísal autor témy Wpegb: 06.10.2009 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
|
|
Registrovaný: 29.06.09 Prihlásený: 23.02.11 Príspevky: 61 Témy: 13 | Napísal autor témy Wpegb: 07.10.2009 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...
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre 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
|
|