Prüfenbutton

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Tuningmax
Beiträge: 9
Registriert: Do 10. Jun 2021, 12:32
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Prüfenbutton

Beitrag von Tuningmax »

Hallo zusammen,

ich brauche dringend eure hilfe.
ich muss ein Prüfen button einführen der einen schlüssel aus buchstaben A bis Z(benutzer gibt den schlüssel ein) prüft und dann den buchstaben aus dem alphabet löscht.

Genaue aufgabenstellung sowie das program habe ich angefügt...ich brauchsé dringend eure hilfe,da ich nicht mehr wiederhohlen kann und die klasse schaffen muss mir mein mpi lehrer aber ein strich durchziehen kann mit der aufgabe.Ich verzweifle an dieser ich g´habe schon stunden rumexperimentiert.

lg

Lazarus eingabe:

unit unit3b;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Menus,
Buttons, ExtCtrls;

type

{ TFKrypto_3b }

TFKrypto_3b = class(TForm)
BiBtEnde: TBitBtn;
BtVerschluesseln: TButton;
BtKlartextLaden: TButton;
BtChiffreSpeichern: TButton;
BtChiffreLaden: TButton;
BtEntschluesseln: TButton;
BtKlartextSpeichern: TButton;
BtSaeubern: TButton;
BtPruefen: TButton;
EdAlphabet: TEdit;
EdSchluessel: TEdit;
LbChiffre: TLabel;
LbAlphabet: TLabel;
LbSchluessel: TLabel;
LbKlartext: TLabel;
MemKlartext: TMemo;
MemChiffre: TMemo;
OpenDialogKlartext: TOpenDialog;
OpenDialogChiffre: TOpenDialog;
Panelinkorrekt: TPanel;
SaveDialogChiffre: TSaveDialog;
SaveDialogKlartext: TSaveDialog;
procedure BtChiffreLadenClick(Sender: TObject);
procedure BtChiffreSpeichernClick(Sender: TObject);
procedure BtEntschluesselnClick(Sender: TObject);
procedure BtKlartextSpeichernClick(Sender: TObject);
procedure BtKlartextLadenClick(Sender: TObject);
procedure BtVerschluesselnClick(Sender: TObject);
procedure BtSaeubernClick(Sender: TObject);

private

public

end;

var
FKrypto_3b: TFKrypto_3b;
Klartext, Alphabet, schluessel, chiffre, s1, s2 : String;
i, j : Integer;

implementation

{$R *.lfm}

{ TFKrypto_3b }

procedure TFKrypto_3b.BtVerschluesselnClick(Sender: TObject);
begin
Klartext := Uppercase(MemKlartext.text);
Alphabet := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Schluessel := Uppercase(EdSchluessel.text);
chiffre := '';

for i := 1 to Length(Klartext) do // Klartext verschlüsseln
if Klartext in ['A'..'Z' ] then
begin
j := pos(Klartext,Alphabet);
chiffre := chiffre + schluessel[j];
end
else chiffre := chiffre + Klartext;

MemChiffre.Text := chiffre; // Ausgabe Chiffre

end;

procedure TFKrypto_3b.BtSaeubernClick(Sender: TObject);
begin
MemKlartext.Clear;
MemChiffre.Clear;
EdSchluessel.clear;

end;


procedure TFKrypto_3b.BtChiffreSpeichernClick(Sender: TObject);
begin
if SaveDialogChiffre.Execute then MemChiffre.lines.SaveToFile(SaveDialogChiffre.FileName);
end;

procedure TFKrypto_3b.BtEntschluesselnClick(Sender: TObject);
begin
chiffre := MemChiffre.text;
Alphabet := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Schluessel := Uppercase(EdSchluessel.text);
Klartext :='';

for i := 1 to Length(chiffre) do // Chiffre entschlüsseln
if chiffre in ['A'..'Z' ] then
begin
j := pos(chiffre,schluessel);
Klartext := Klartext + alphabet[j];
end
else Klartext := Klartext + chiffre;

MemKlartext.Text := Klartext; // Ausgabe Klartext

end;

procedure TFKrypto_3b.BtKlartextSpeichernClick(Sender: TObject);
begin
if SaveDialogKlartext.Execute then MemKlartext.lines.SaveToFile(SaveDialogKlartext.FileName);
end;

procedure TFKrypto_3b.BtKlartextLadenClick(Sender: TObject);
begin
if OpenDialogKlartext.Execute then
begin
MemKlartext.clear;
MemKlartext.lines.LoadFromFile(OpenDialogKlartext.FileName)
end;
end;


procedure TFKrypto_3b.BtChiffreLadenClick(Sender: TObject);
begin
if OpenDialogChiffre.Execute then
begin
MemChiffre.clear;
MemChiffre.lines.LoadFromFile(OpenDialogChiffre.FileName)
end;
end;

end.


Genaue aufgabe:

Bei der Eingabe des Schlüssels durch den Benutzer können natürlich Eingabefehler auftreten, z.B. ein
Buchstabe taucht mehrfach auf oder die Länge passt nicht. Daher empfiehlt es sich, dem Benutzer die
Möglichkeit zu geben, seinen Schlüssel prüfen zu lassen. Genau das sollst du nun angehen!
Auf der nächsten Seite findest du eine Abbildung, die ein entsprechendes Fenster (Formular) darstellt. Durch Betätigen der Schaltfläche ‚Prüfen‘ wird der Schlüssel auf Korrektheit geprüft und in jedem Fall
eine Information ausgegeben. Erweitere dein Formular zunächst um die neuen Komponenten (ein
Button und ein Panel). Wie muss die zugehörige Ereignisbehandlungsroutine im Quelltext nun
aufgebaut sein? Schreibe sie anhand der folgenden Anleitung und teste dein erweitertes Programm. Jeder Buchstabe des Schlüssels wird – nacheinander – gelesen und im Alphabet unmittelbar
danach gelöscht. Wenn der Schlüssel korrekt ist, darf im Alphabet-String nichts mehr stehen: er
muss dann leer sein, denn jeder Buchstabe des Alphabets muss im Schlüssel ja genau einmal
verwendet werden.
Dateianhänge
Screenshot (7).png
(67.75 KiB) Noch nie heruntergeladen
Screenshot (6).png
(65.54 KiB) Noch nie heruntergeladen
Screenshot (5).png
(68.13 KiB) Noch nie heruntergeladen
Screenshot (4).png
(298.28 KiB) Noch nie heruntergeladen

Antworten