ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
7563
7563
EMPFEHLEN
-
Hallo,
wir machen im Informatikunterricht momentan Verschlüsselung usw.
Nun soll ich in VB ein Programm erstellen, mitdem es möglich ist einen Text mit der Cäsar-Methode zu verschlüsseln. (Bei der Cäser Methode wird jeder einzelne Buchstabe eines Textes um x Buchstaben verschoben. z.B. "Verschiebung" beträgt 4, der Text ist "hallo" und wird nach der Verschlüsselung zu "lepps".)
In VB sieht dass dann folgendermaßen aus:
Ich habe 3 Textboxen und einen Button. Eine, in der ich die "Verschiebung" eintrage, eine in die ich den zu verschlüsselnden Text eintrage und eine, in der der verschlüsselte Text nachdem man auf den Button geklickt hat angezeigt wird.
Code ist dieser hier:
Private Sub cmdverschlüsseln_Click()
Dim text$
text = txttext.text
txtverschlüsselt.text = encode(text)
txttext.text = decode(encode(text))
End Sub
Function encode(str As String)
Dim str_crypt$
Dim i%
Dim verschiebung As Integer
verschiebung = txtverschiebung.text
For i = 1 To Len(str)
str_crypt = str_crypt & Chr(Asc(Mid(str, i, 1)) + verschiebung)
Next i
encode = str_crypt
End Function
Function decode(str_crypt As String)
Dim str$
Dim i%
Dim verschiebung
verschiebung = txtverschiebung.text
For i = 1 To Len(str_crypt)
str = str & Chr(Asc(Mid(str_crypt, i, 1)) - verschiebung)
Next i
decode = str
End Function
Nun zum Problem. Wenn ich den Code und die Form im VB-Editor von Excel öffne und starte klappt alles. Nun will ich das ganze aber unter Visual Studios programmieren. Wenn ich jetzt genau die gleiche Form erstelle, diesen Code benutze und das Programm starte, kommt diese Meldung hier:
"Die str_crypt Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine Nullverweisausnahme auftreten."
Bitte um Hilfe...
Mit freundlichen Grüßen Golox
-
21.03.07 17:40 #2
Hallo Golox
Ich habe den Code 1:1 kopiert und bei mir klappt alles prima (Ich habe die Steuerelemente richtig bennent).
Mir fällt zwar nicht ein was falsch sein könnte.
Vl. ist es die Schuld des Compilers. Welchen verwendest du? Ich verwende VB 6.0
Liebe Grüße
Philipp9494
-
Also dem Fehler nach zu Urteilen gibt es hier ein Problem:
Code :1 2 3
For i = 1 To Len(str) str_crypt = str_crypt & Chr(Asc(Mid(str, i, 1)) + verschiebung) Next i
str_crypt ist da ja noch nicht initialisiert und du willst es schon zuweisen. Versuch mal zuvor in str_crypt was reinzuschreiben, z.B.: str_crypt=""
Gruß
cesupa
-
21.03.07 23:15 #4
Im Normalfall ist es egal, ob du vorher was reinschreibst oder nicht, da sollte kein Fehler auftreten (auch bei mir hat es unter VB6 funktioniert). Kann es sein, dass du mit VB.NET arbeitest? Die .NET-Sprachen haben sich gegenüber den alten Sprachen doch etwas verändert, Fragen zu .NET stellst du am besten im .NET-Unterforum.
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
Danke für die Antworten =)
Ich hab der Variable jetzt, wie cesupa vorgeschlagen hat, einfach nen leeren Wert zugewiesen (str_crypt = "") und es klappt =)
Zu DrSoong: Ich arbeite nicht mit VB.Net aber trotzdem Danke.
-
06.04.10 18:36 #6get_banned Tutorials.de Gastzugang
Ich grabe jetzt mal dieses alte Thema aus, da ich genau das gleiche machen muss. Leider habe ich nicht viel Ahnung von Vb. Deshalb habe ich jetzt einfach diesen Code kopiert, die Steuerelemente richtig benannt und das angesprochene Problem durch das Zuweisen eines leeren Werts gelöst. Wenn ich aber das Programm jetzt ausprobieren will und eben in den Textboxen etwas eingebe und eben etwas verschlüsseln möchte passiert einfach garnichts. Mir ist klar das ich warscheinlich etwas ganz grundlegendes falsch mache =(. Hier mein Code
Public Class Form1
Private Sub cmdverschlüsseln_Click()
Dim text$
text = txttext.text
txtverschlüsselt.text = encode(text)
txttext.text = decode(encode(text))
End Sub
Function encode(ByVal str As String)
Dim str_crypt$
Dim i%
Dim verschiebung As Integer
verschiebung = txtverschiebung.text
For i = 1 To Len(str)
str_crypt = ""
str_crypt = str_crypt & Chr(Asc(Mid(str, i, 1)) + verschiebung)
Next i
str_crypt = ""
encode = str_crypt
End Function
Function decode(ByVal str_crypt As String)
Dim str$
Dim i%
Dim verschiebung
verschiebung = txtverschiebung.text
For i = 1 To Len(str_crypt)
str = ""
str = str & Chr(Asc(Mid(str_crypt, i, 1)) - verschiebung)
Next i
str = ""
decode = str
End Function
End Class
Ich habe Vb 2008 Express Edition. Hat jmd vllt sogar ein Tutorial für eine Cäsar-Verschlüsselung? Das wäre natürlich noch viel besser...
-
Ähnliche Themen
-
Problem mit Cäsar Kodierung
Von Marimi im Forum C/C++Antworten: 1Letzter Beitrag: 10.11.10, 20:46 -
RSA-Verschlüsselung
Von Azi im Forum Security (Viren, Trojaner, Spam)Antworten: 5Letzter Beitrag: 30.12.07, 13:05 -
Cäsar
Von ValhallasRaben im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 05.12.07, 09:19 -
Cäsar Verschlüsselung
Von Spranta im Forum JavaAntworten: 2Letzter Beitrag: 16.03.07, 13:23 -
Cäsar Chiffre
Von Der O im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 13.11.04, 18:51





Zitieren


Login





