Text mit Atbash codieren + Text in Konsole zentrieren

    • VB.NET

      Text mit Atbash codieren + Text in Konsole zentrieren

      Hi
      ich poste hier ein simple Lösung, um Wörter mit Atbash zu verschlüsseln.
      Das Programm ist eine Konsolen-Anwendung und funktioniert ganz simple nach dem EVA-Prinzip
      (Eingabe-Verarbeitung-Ausgabe)
      Gleichzeitig ist in dem Programm noch eine Lösung zu finden, die zeigt, wie man einen Text in der Konsole zentriert.
      :?: Info zu Atbash:
      :?: Atbash ist ursprünglich eine hebräische Geheimschrift, näheres dazu hier (Wikipedia.de: de.wikipedia.org/wiki/Atbash).
      :?: Man hat damals einfach das Alphabet umgedreht und es auf das normale Alphabet übertragen.
      :?: D.h. Aus a wurde z, aus b wurde y, usw.

      Quellcode

      1. abcdefghijklmnopqrstuvwxyz
      2. zyxwvutsrqponmlkjihgfedcab


      Das so als kleine Hintergrundinfo.
      Hier ist der Programmcode:

      VB.NET-Quellcode

      1. Module Module1
      2.   Private Text_Old, Text_New As String 'Speichern den uncodierten und den codierten Text 
      3.   Sub Main()
      4.   Console.ForegroundColor = ConsoleColor.Yellow
      5.   CenterText("Atbash")
      6.   For i As Integer = 1 To 80
      7.   Console.Write("*")
      8.   Next
      9.   Console.WriteLine()
      10.   CenterText("Geben sie den zu codierenden Text ein!")
      11.   CenterText("Satz- und Sonderzeichen sind nicht erlaubt!")
      12.   Console.WriteLine()
      13.   Console.Write("Text: ")
      14.   Text_Old = Console.ReadLine 'den uncodierten Text einlesen
      15.   Console.WriteLine("Der neue Text lautet: " & Atbash(Text_Old)) 'den unkodierten Text an die "Codierungs-Funktion" übergeben
      16.   Console.ReadKey()
      17.   End Sub
      18.   Sub CenterText(ByVal Text As String)
      19.   Const Width As Integer = 40 'Die halbe Breite der Konsole
      20.   Dim TextLength As Integer 'Speichert die Länge des Textes
      21.   Dim Value As Integer 'Speichert die Anzahl der Leerstellen
      22.   TextLength = Text.Length
      23.   Value = Width - Math.Round(TextLength / 2)
      24.   For i As Integer = 1 To Value
      25.   Console.Write(" ")
      26.   Next
      27.   Console.WriteLine(Text)
      28.   End Sub
      29.   Function Atbash(ByVal Text As String)
      30.   Dim MyArray() As Char
      31.   Dim iAsc As Integer
      32.   MyArray = Text.ToCharArray 'Der Text wird in einen Array convertiert, dadurch ist er leichter zu verarbeiten
      33.   For i As Integer = 0 To MyArray.Length - 1
      34.   iAsc = Asc(MyArray(i)) 'Der entsprechende Buchstabe wird in ASCII-Zeichencode umgewandelt
      35.   iAsc += 25 'Der Buchstabe wird um 25 Stellen im Alphabet verschoben
      36.   If iAsc > 90 Or iAsc > 122 Then
      37.   'Falls der Buchstabe kein a/A ist und mit einer Verschiebung um 25 Stellen nicht das gewünschte Ergebnis
      38.   'erzielt wird, wird hier jeweils für den Groß - oder Kleinbuchstaben der richtige "Code-Buchstabe" ermittelt
      39.   If iAsc > 90 And iAsc < 122 Then
      40.   iAsc = (25 - (iAsc - 90)) + 65
      41.   Else
      42.   iAsc = (25 - (iAsc - 122)) + 97
      43.   End If
      44.   End If
      45.   Text_New += Chr(iAsc).ToString 'Der Array wird wieder in einen String "umgewandelt" - durch "Addition"
      46.   Next
      47.   Return Text_New
      48.   End Function
      49. End Module



      Das ist nur eine von vielen Lösungen. - die aber trotzdem ganz hilfreich sein kann, da man z.B. in der Schule oft dieses Verfahren im Informatikunterricht braucht.
      MFG
      Fab
      ;)
      Dateien
      • Atbash.zip

        (4,73 kB, 297 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fab“ ()