AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vigenere macht Macken ;)

Ein Thema von xv300 · begonnen am 7. Feb 2010 · letzter Beitrag vom 10. Feb 2010
 
xv300

Registriert seit: 13. Jun 2009
25 Beiträge
 
#1

Vigenere macht Macken ;)

  Alt 7. Feb 2010, 17:09
Hallo Ihr, hab grade einen Vigenere Code geschrieben, doch der macht noch eine komische Macke,
der dritte Buchstabe wird nicht das was er sein soll, könnt Ihr vielleicht den Fehler finden,
ich such schon den ganzen Tag und finde GAR nix mehr....

Delphi-Quellcode:
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    BuQuadrat: TButton;
    SGQuadrat: TStringGrid;
    EdKlartext: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    EDKennwort: TEdit;
    Edpruef: TEdit;
    Buverschluesseln: TButton;
    Label4: TLabel;
    EdGeheim: TEdit;
    Bugeheim: TButton;
    procedure BuQuadratClick(Sender: TObject);
    procedure BuverschluesselnClick(Sender: TObject);
    procedure BugeheimClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  keynum: array[1..20]of integer;
  keyword:string;

implementation

{$R *.dfm}

procedure TForm1.BuQuadratClick(Sender: TObject);
Var C: char;
    i, j, Position, Nummer:integer;
begin
      for i := 0 to 25 do begin
        for j :=0 to 25 do begin
                           SGQuadrat.Cells[0,j] := IntToStr(j) ;
                           Position := 65 ; // Buchstabe A = ASCII 65
                           Nummer := Position + i + j ; // Verschiebung im Alphabet
                           if (Nummer > 90) then Nummer := Nummer-26 ; //falls zu groß, wieder auf Anfang
                           C := Chr(Nummer) ;
                           SGQuadrat.Cells[i+1,j] := c ;
                         end;
                        end;
            end;

procedure TForm1.BuverschluesselnClick(Sender: TObject);
Var keystr:string;
    c:char;
    i:integer;


begin
    keystr:='';
    for i:= 1 to 20 do keynum[i]:=0;

    keyword:= Edkennwort.Text;
    for i:= 1 to length(keyword) do begin
                                       c:=keyword[i];
                                       keynum[i]:=ord(c)-65;
                                       keystr:=keystr+IntToStr(keynum[i])+' ';
                                    end;
    Edpruef.text:= UpperCase(keystr);


end;



procedure TForm1.BugeheimClick(Sender: TObject);
Var klartext,code:string;
    i,laenge,keypos,nummer:integer;

begin
 klartext:= UpperCase(EdKlartext.text);
 laenge:=length(keyword);

 for i:= 1 to length(klartext) do begin
                                    keypos := i mod laenge;
                                    nummer := ord(klartext[i])+keynum[keypos];
                                    if nummer >90 then nummer:= nummer-26;
                                    code:= code + chr(nummer);
                                  end;
 Edgeheim.text:= UpperCase(code);


end;


end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz