String nach individueller Verschlüsselung verschlüsseln zum "versenden"

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

    String nach individueller Verschlüsselung verschlüsseln zum "versenden"

    Ich habe jetzt echt viel gesucht, aber ich habe hier und in anderen Foren nichts in der Richtung gefunden.
    Ich habe folgendes Problem und wäre schon mit einem Ansatz vollkommen zufrieden:
    Ich habe eine LCD-Anzeige mit 2 Zeilen á 20 Zeichen. Diese wird per Serieller Schnittstelle und Arduino angesprochen. Um das zu machen habe ich ein Programm in VB 2010 erstellt das Strings an den Seriellen Port weiter gibt. Das funktioniert auch so weit, nur dass etwas völlig anderes angezeigt wird als ich rein sende. (Unwichtig, nur fürs Verständnis)
    Nun muss also der String in seine Einzelteile zerlegt werden und jedes Zeichen einzeln umgewandelt und versendet werden. Hierzu habe ich angefangen durch zu probieren welche Eingabe welche Ausgabe erzielt. Diese Ergebnisse sind in eine Listview gepackt und nach deieser Methode gespeichert.
    Aber wie bekomme ich jetzt die Stringteile abgeglichen mit den Items in Spalte 1 der Listview und durch die der Spalte 2 ersetzt und dann noch einzeln ausgegeben/versendet? (Wichtig! es kommt vor dass um ein Zeichen an zu zeigen bis zu 4 Zeichen gleichzeitig gesendet werden müssen)
    Mir würde ja eigentlich schon reine Art Schleife reichen die die Zeichen abgleicht und die Umschlüsselung in einer Variablen speichert, so dass ich die Verschlüsselung nur noch am ende an "Private Sub Senden" übergeben brauche.

    Frage also: Wie kann ich den Sting umschlüsseln?

    Das ist recht kompliziert, aber ich hoffe ihr könnt mir helfen und verzweifelt nicht auch so wie ich hier in den letzten 2 Wochen.
    Danke Felix

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Ich hab's endlich raus und präsentiere einfach mal mein Ergebnis:

    Die Funktion zum Umschlüsseln

    VB.NET-Quellcode

    1. Private Sub Umschlüsseln(ByVal Zeichen As String)
    2. Dim found As Integer 'Variabele für den aktuellen Index in der Listview
    3. Dim lvItem As ListViewItem
    4. Dim Ausgabe As String 'Variabel für zu sendende Zeichen
    5. For Each lvItem In ListView1.Items 'Es wird jeder Eintrag durchsucht
    6. If lvItem.Text = Zeichen Then 'Stimmt das gefundene mit dem gesuchten überein?
    7. found = lvItem.Index 'index des gefundenen merken
    8. Ausgabe = ListView1.Items(found).SubItems(1).Text 'Text aus der 2. Splate der Listview am selected index
    9. Senden(Ausgabe) 'Umgeschlüsseltes Zeichen an die Anzeige senden
    10. Exit Sub
    11. End If
    12. Next
    13. End Sub


    Die Funktion des Buttons

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim Eingabe As String = TBText.Text 'Einlesen des Strings
    3. Dim length As Integer = Len(Eingabe) 'länge des Strings
    4. Dim Ausgabe As String 'Variable für einzelne Zeichen
    5. For a = 1 To length 'für alle Zeichen des Strings
    6. Ausgabe = Mid(Eingabe, a, 1) 'erzeugt das Zeichen aus dem String
    7. Umschlüsseln(Ausgabe) 'gibt das Zeichen zum Umschlüsseln weiter
    8. If a = 20 Then 'maximal 20 Zeichen pro Zeile dann nächste Zeile
    9. Senden("(ooa") 'In die untere Zeile rücken (leer)
    10. System.Threading.Thread.Sleep(3)
    11. Senden("(") 'An den Anfang der unteren Zeile rücken
    12. End If
    13. If a = 40 Then 'Wenn die Zeichen nicht mehr auf die Anzeige passen
    14. MsgBox("Zeichenkette zu lang!")
    15. Exit Sub
    16. End If
    17. Ausgabe = "" 'Leert die Variable für das einzelen Zeichen
    18. Next
    19. End Sub


    Für alle die das senden interessiert:

    VB.NET-Quellcode

    1. Private Sub Senden(ByVal message As String)
    2. Try 'Wenn der Port erreichbar ist:
    3. SerialPort1.Write(message) 'String an den Port senden
    4. System.Threading.Thread.Sleep(3) 'Pause zwischen den Zeichen
    5. Catch ex As Exception 'Andernfalls Fehlermeldung
    6. MessageBox.Show("Error! SerialPort not connected!")
    7. End Try
    8. End Sub


    Die erste Zeile der Listview besteht aus den Zeichen die angezeigt werden sollen (also die aus denen der String besteht) und die 2. Spalte besteht aus den passenden Verschlüsselungen.

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „modellbusse ;)“ ()

    Bist Du sicher, dass Du VBScript verwendest? Das sieht nämlich ganz stark nach VB.NET aus. Wie heißt denn die IDE, in der Du den Code schreibst?
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils