Einzelnen Beitrag anzeigen
Alt 02.01.09, 14:54   #41 (permalink)
Athelstan
 
Registriert seit: 26.12.08
Athelstan Leistung: Facit NTK
Athelstan eine Nachricht über ICQ schicken
Likes: 0
Standard

Hier meine Version in ruby, sie verschlüsselt eingegebenen Text oder Files im Caesarcode, man kann eingeben, um wieviel Buchstaben verschoben werden soll. Der eingegebene Text oder der Text im File sollte in Kleinbuchstaben geschrieben sein, alles andere bleibt wie es ist, und das Ergebnis ist in Großbuchstaben, wie es bei Verschlüsselungen Standard ist.

Code:
class VProg
	def initialize(x)
		@x = x
	end
	def to_s
		if @x == 1
			textv()
		elsif @x == 2
			dateiv()
		else
			exit
		end
	end
	private
	def textv()
		puts "\n\n|-----Caesar-Verschluesselung-----|"
		puts "Geben Sie nun den Text in Kleinbuchstaben ein, der verschluesselt werden soll:\n\n"
		text1 = gets.chomp
		puts "\n\nGeben Sie ein, mit welchem Faktor der Text verschluesselt werden soll:\n\n"
		faktor = gets.to_i; text2 = verschluesseln(text1, faktor)
		puts text2
	end
	def dateiv()
		puts "\n\n|-----Caesar-Verschluesselung-----|"
		puts "Geben Sie nun den kompletten Pfad der Datei an, die verschluesselt werden soll:\n\n"
		pfad = gets.chomp
		puts "\n\nGeben Sie ein, mit welchem Faktor der Text verschluesselt werden soll:\n\n"
		faktor = gets.to_i; file = open(pfad, "r"); text1 = file.read; file.close
		text2 = verschluesseln(text1, faktor); file = open(pfad, "w"); file.print "#{text2}"
		puts "\n\nDatei verschluesselt.\n\n"
	end
	def verschluesseln(text1, faktor)
		a = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
		b = {"a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5, "f"=>6, "g"=>7, "h"=>8, "i"=>9, "j"=>10, "k"=>11, "l"=>12, "m"=>13, "n"=>14, "o"=>15, "p"=>16, "q"=>17, "r"=>18, "s"=>19, "t"=>20, "u"=>21, "v"=>22, "w"=>23, "x"=>24, "y"=>25, "z"=>26}
		text2 = text1.split(""); text1 = ""
		text2.each { |part|
			if b[part] != nil
				text1 += a[(b[part]-1-(26-faktor))]
			else
				text1 += part
			end
		}
		return text1
	end
end
puts "\n\n|--------------Menue--------------|"
puts "(1) Text verschluesseln"
puts "(2) Datei verschluesseln"
puts "(3) Programm beenden\n\n"
x = gets.to_i; vprog = VProg.new(x); vprog.to_s
Athelstan ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61