[Gelöst] Problem mit Schleppnetzverfahren

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

[Gelöst] Problem mit Schleppnetzverfahren

Beitrag von Alci »

Guten Tag!
Gleich mal meine erste Frage! :) Ich bin gerade dabei polyalphabetische Ersetzungschiffren zu programmieren. Die Caesar-Verschlüsselung bzw. Vigenère-Verschlüsselung habe ich schon erfolgreich programmiert, doch jetzt komme ich beim Schleppnetzverfahren nicht mehr weiter.
Zum Schleppnetzverfahren auch Autokey-Verschlüsselung genannt:
Die Autokey-Vigenère-Verschlüsselung (auch als Vigenère-Selbstschlüssel-Verfahren bekannt) vermeidet die Periodizität des Schlüsselwortes indem sie den Schlüssel durch Anhängen des Klartextes verlängert:
Text: geheimnis
Schlüsselwort: AKEY
Schlüssel: AKEYGEHEI
Cyphertext: GOLCOQUMA

Quelle: Wikipedia

Folgenden Quellcode habe ich zurzeit:

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;
 
type
 
  { TSchleppnetzverfahren }
 
  TSchleppnetzverfahren = class(TForm)
    Loeschen: TButton;
    Dechiffrieren: TButton;
    Chiffrieren: TButton;
    Schluesselwort: TEdit;
    Klar: TMemo;
    Code: TMemo;
    procedure ChiffrierenClick(Sender: TObject);
    procedure DechiffrierenClick(Sender: TObject);
    procedure LoeschenClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Schleppnetzverfahren: TSchleppnetzverfahren; Schlusselwort : string;
 
implementation
 
  function uppercase(s: string): string;
var i: integer;
begin
  for i:= 1 to length(s)
  do s[i]:= upcase(s[i]);
  result:= s;
end;
 
{ TSchleppnetzverfahren }
 
procedure TSchleppnetzverfahren.ChiffrierenClick(Sender: TObject);
  var
    Zeile, Spalte: integer;
    TempStr: string;
    KlarZeichen, CodeZeichen: Char;
    Schluesselzeichen: char;
begin
  Schlusselwort:= uppercase(Schlusselwort);
  Code.Lines.Clear;
  for Zeile:= 0 to Klar.Lines.Count-1
  do begin
       TempStr:= '';
       for Spalte:= 1 to length(Klar.Lines[Zeile])
       do begin
            SchluesselZeichen:= Schlusselwort[1];
            delete(Schlusselwort,1,1);
 
            KlarZeichen:= upcase(Klar.Lines[Zeile][Spalte]);
 
            if KlarZeichen in ['A'..'Z']
            then Schlusselwort:= Schlusselwort + Klarzeichen
            else Schlusselwort:= Schlusselwort + 'A';
 
            if KlarZeichen in ['A'..'Z']
            then begin
                   CodeZeichen:= chr((ord(KlarZeichen)-65 + (ord(SchluesselZeichen)-65)) mod 26 + 65);
                 end
            else CodeZeichen:=KlarZeichen;
            TempStr:= TempStr+CodeZeichen;
          end;
       Code.Lines.Add(TempStr);
     end;
end;
 
procedure TSchleppnetzverfahren.DechiffrierenClick(Sender: TObject);
  var
    zeile, Spalte: integer;
    TempStr: string;
    KlarZeichen, CodeZeichen: Char;
    SchluesselZeichen: char;
begin
  Schlusselwort:= uppercase(Schlusselwort);
  Klar.Lines.Clear;
  for zeile:= 0 to Code.Lines.Count-1
  do begin
       TempStr:= '';
       for Spalte:= 1 to length(Code.Lines[zeile])
       do begin
            SchluesselZeichen:= Schlusselwort[1];
            delete(Schlusselwort,1,1);
            CodeZeichen:= upcase(Code.Lines[Zeile][Spalte]);
            if CodeZeichen in ['A'..'Z']
            then begin
                   KlarZeichen:= chr((ord(CodeZeichen)-65+26- (ord(SchluesselZeichen)-65)) mod 26 + 65);
                 end
            else KlarZeichen:=CodeZeichen;
 
            if KlarZeichen in ['A'..'Z']
            then Schlusselwort:= Schlusselwort + Klarzeichen
else Schlusselwort:= Schlusselwort + 'A';
 
            TempStr:= TempStr+KlarZeichen;
          end;
       Klar.Lines.Add(TempStr);
     end;
end;
 
procedure TSchleppnetzverfahren.LoeschenClick(Sender: TObject);
begin
  Klar.Lines.Clear;
  Code.Lines.Clear;
end;
 
initialization
  {$I unit1.lrs}
 
end.

Beim Starten in Lazarus wird es ohne Probleme gestartet doch beim Drücken des Chiffrieren bzw. Dechiffrieren Buttons kommt folgende Fehlermeldung. :(
Project raised exception class 'External: SIGSEGV

Kompilieren kann ich das Projekt, doch beim Drücken des Buttons kommt folgende Fehlermeldung:
TApplication.HandleException Access violation
Stack trace:
$08084CF0 TSCHLEPPNETZVERFAHREN__DECHIFFRIERENCLICK, line 94 of unit1.pas
$0814D214 TCONTROL__CLICK, line 2094 of ./include/control.inc
$0815F79F TBUTTONCONTROL__CLICK, line 52 of ./include/buttoncontrol.inc
$0815FE55 TCUSTOMBUTTON__CLICK, line 185 of ./include/buttons.inc
$081602F1 TBUTTON__CLICK, line 329 of ./include/buttons.inc
$0816000A TCUSTOMBUTTON__WMDEFAULTCLICKED, line 240 of ./include/buttons.inc
$08068E59
$08143E54 TWINCONTROL__WNDPROC, line 4749 of ./include/wincontrol.inc
$0826E7C3 DELIVERMESSAGE, line 103 of lclmessageglue.pas
$0826D3F0 GTK2WSBUTTON_CLICKED, line 1633 of gtk2wsstdctrls.pp
$B79FA3A4
$B79ECC7B
$B7A02E57
$B7A044B9
$B7A04936
$B7B28BDA
$B7B2A1F8

Ich benutze Ubuntu 9.04 und Lazarus v0.9.26.2-0 rUnknown i386-linux-gtk 2 (beta). Außerdem kann ich die Caption, also den Inhalt der Memo nicht ändern, ich wollte gerne das die Memos leer sind. Ich programmiere noch nicht lange und konnte leider keinen Fehler finden, vielleicht kann mir jemand einen Tip geben und mir helfen.
Schon mal vielen Dank im Voraus. :)
Alci
Zuletzt geändert von Alci am Do 28. Mai 2009, 12:01, insgesamt 1-mal geändert.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Problem mit Schleppnetzverfahren

Beitrag von Scotty »

Fehlermeldungen werden auch dann in die Konsole ausgegeben, wenn alles richtig läuft. Ich hätte zwei Ideen auf den ersten Blick. In der Funktion uppercase() überschreibst du den Eingabeparameter s. Das geht vielleicht nur, wenn der als var gekennzeichnet ist (und muss auch nicht sein). Das const stellt sicher, dass s nicht beschrieben werden kann. Ansonsten gibt es sicher eine Funktion wie UpperString() oder AnsiUpperString() wie unter Delphi.

Code: Alles auswählen

function uppercase(const s: string): string;
var i: integer;
begin
  Result:='';
  for i:= 1 to length(s)
   do Result[i]:= upcase(s[i]);
end;

Der zweite Punkt ist die "Caption" des Memos. Ich nehme an, Du meinst den Inhalt, sprich: die Eigenschaft Lines (TStrings). Wenn das Memo erzeugt wurde (als z.B. während der Designzeit auf dem Formular klebt), dann muss das so funktionieren, wie Du schreibst.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Problem mit Schleppnetzverfahren

Beitrag von af0815 »

Code: Alles auswählen

TSchleppnetzverfahren = class(TForm)    
     ....
     Schluesselwort: TEdit;


Statt

Code: Alles auswählen

Schlusselwort:= uppercase(Schlusselwort);


Ich hätte mir folgendes erwartet

Code: Alles auswählen

Schlusselwort.Text := uppercase(Schlusselwort.Text);


Denn du willst ja die Text-eigenschaft manipulieren und nicht das Objekt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Problem mit Schleppnetzverfahren

Beitrag von shokwave »

Code: Alles auswählen

.
.
.
    Schluesselwort: TEdit;
.
.
.
var
  Schleppnetzverfahren: TSchleppnetzverfahren; Schlusselwort : string;


Sieht eher so aus als wäre "Schluesselwort" 2 mal definiert. Einmal als TEdit und einmal als String. Eine bessere (eindeutige) Namensgebung ist hilfreich. Bei Komponenten setzte ich gern eine Abkürzung des Komponentennamen davor. z.B.: "btn_" für einen Button.
mfg Ingo

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: Problem mit Schleppnetzverfahren

Beitrag von Alci »

Ich habe eure Kommentare mal durchgelesen und den Code ganz neu aufgesetzt, ohne upperCase() und ohne Memo, um den Fehler einfacher zu finden.

Code: Alles auswählen

unit Unit1; 
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;
type
  { TSchleppnetzverfahren }
  TSchleppnetzverfahren = class(TForm)
    Chiffrieren: TButton;
    Dechriffrieren: TButton;
    Klartext: TEdit;
    Geheimtext: TEdit;
    Schluesselwort: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
var
  Schleppnetzverfahren: TSchleppnetzverfahren;
  Code, Geheim, Klar : string;
  n : integer;
  KlarZeichen, GeheimZeichen, CodeZeichen : char;
 
implementation
 
{ TSchleppnetzverfahren }
 
procedure TSchleppnetzverfahren.ChiffrierenClick(Sender: TObject);
begin
  Geheimtext.Clear;
  Code := Schluesselwort.Text;
  Klar := Klartext.Text;
  for n:=0 to length(Klartext.Text)
    do begin
      Geheim:= '';
      CodeZeichen:= Code[1];
      delete(Code,1,1);
      if KlarZeichen in ['A'..'Z']
      then Code := Code + Klar
      else Code := Code + 'A';
      if KlarZeichen in ['A'..'Z']
      then begin
        CodeZeichen:= chr((ord(KlarZeichen)-65 + (ord(CodeZeichen)-65)) mod 26 + 65);
      end
      else CodeZeichen := KlarZeichen;
      Geheim:= Geheim + CodeZeichen;
  end;
  Geheimtext.Text := Geheim;
end;
 
procedure TSchleppnetzverfahren.DechriffrierenClick(Sender: TObject);
begin
  Klartext.Clear;
  Code := Schluesselwort.Text;
  Geheim := Geheimtext.Text;
  for n:=0 to length(Geheimtext.Text)
    do begin
      Klar:= '';
      CodeZeichen := Code[1];
      delete(Code,1,1);
      if GeheimZeichen in ['A'..'Z']
      then begin
        KlarZeichen:= chr((ord(CodeZeichen)-65+26- (ord(GeheimZeichen)-65)) mod 26 + 65);
      end
      else KlarZeichen := CodeZeichen;
      if KlarZeichen in ['A'..'Z']
      then Geheim := Geheim + Klar
      else Geheim := Geheim + 'A';
      Geheim := Geheim + Klar;
  end;
  Klartext.Text := Klar;
end;
initialization
  {$I unit1.lrs}
end.

Fragen:
  • Kann man die if-Konstruktion so stehen lassen?:
    for n:=0 to length(Edit.Text)
    do begin
  • Fällt euch irgendwo ein Fehler auf?
Ich würde mich sehr über Hilfe freuen. :)
Alci

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Problem mit Schleppnetzverfahren

Beitrag von Scotty »

Der 0. Eintrag eines Strings ist die Länge. Gezählt wird ab 1 (und dann bis length statt length-1; bei Listen wird von 0 bis Count-1 gezählt). Lokale Variablen sollten in der Funktion stehen (also vor dem begin); Du deklarierst globale Variablen, die überall bekannt sind - das funktioniert, ist aber unsauber. Variablen, die innerhalb der Klasse bekannt sein sollen, stehen unter privat, Variablen, die zur Klasse gehören, aber übergreifend verfügbar sein sollen, werden unter public aufgeführt. Der Code wird wahrscheinlich noch nicht funktionieren, weil die Variablenbezeichner nicht stimmen (z.B. Geheimzeichen) und sicher auch irgendwo noch logische Fehler sind.

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: Problem mit Schleppnetzverfahren

Beitrag von Alci »

So nun habe ich noch mal alles überarbeitet und zu ein paar Stellen eine Frage.

Code: Alles auswählen

unit Unit1; 
{$mode objfpc}{$H+}
interface
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;
type
  { TSchleppnetzverfahren }
  TSchleppnetzverfahren = class(TForm)
    Chiffrieren: TButton;
    Dechiffrieren: TButton;
    Klartext: TEdit;
    Geheimtext: TEdit;
    Schluesselwort: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
var
  Schleppnetzverfahren: TSchleppnetzverfahren;
implementation
{ TSchleppnetzverfahren }
procedure TSchleppnetzverfahren.ChiffrierenClick(Sender: TObject);
var
  Schluessel, Geheim, Klar : string;
  n : integer;
  KlarZeichen, GeheimZeichen, SchluesselZeichen : char;
begin
  Geheimtext.Clear;
  Schluessel := Schluesselwort.Text;
  Klar := Klartext.Text;
  for n:=1 to length(Klartext.Text) // Ist die Schleife jetzt richitg?
    do begin
      Geheim:= '';
      SchluesselZeichen:= Schluessel[1];
      delete(Schluessel,1,1);
      KlarZeichen := Klar[n]; //Wie kann man KlarZeichen definieren? So klappt es wohl nicht :(
      if KlarZeichen in ['A'..'Z']
      then Schluessel := Schluessel + KlarZeichen
      else Schluessel := Schluessel + 'A';
      if KlarZeichen in ['A'..'Z']
      then begin
        GeheimZeichen:= chr((ord(KlarZeichen)-65 + (ord(SchluesselZeichen)-65)) mod 26 + 65); //Ist das so richitg?
      end
      else GeheimZeichen := KlarZeichen;
      Geheim:= Geheim + GeheimZeichen;
  end;
  Geheimtext.Text := Geheim;
end;
procedure TSchleppnetzverfahren.DechiffrierenClick(Sender: TObject);
var
  Schluessel, Geheim, Klar : string;
  n : integer;
  KlarZeichen, GeheimZeichen, SchluesselZeichen : char;
begin
  Klartext.Clear;
  Schluessel := Schluesselwort.Text;
  Geheim := Geheimtext.Text;
  for n:=1 to length(Geheimtext.Text) // Ist die Schleife jetzt richitg?
    do begin
      Klar:= '';
      SchluesselZeichen := Schluessel[1];
      delete(Schluessel,1,1);
      GeheimZeichen := Geheim[n]; //Wie kann man GeheimZeichen definieren? So klappt es wohl nicht :(
      if GeheimZeichen in ['A'..'Z']
      then begin
        KlarZeichen:= chr((ord(GeheimZeichen)-65+26- (ord(SchluesselZeichen)-65)) mod 26 + 65); //Ist das so richitg?
      end
      else KlarZeichen := GeheimZeichen;
      if KlarZeichen in ['A'..'Z']
      then Schluessel := Schluessel + KlarZeichen
      else Schluessel := Schluessel + 'A';
      Klar := Klar + KlarZeichen;
  end;
  Klartext.Text := Klar;
end;
initialization
  {$I unit1.lrs}
end.

Ich hatte ein paar Mal die Variablen vertauscht, deswegen habe ich jetzt noch mal, alles neu zusammengestellt. Wenn ich das jetzt versuche bekomme ich als GeheimText nur einen Buchstaben, wenn ich
KlarZeichen := Klar[n];
auskommentiere gar keine. Irgendetwas läuft falsch nur was? Bitte noch ein paar Tips.
Alci
Zuletzt geändert von Alci am Mi 27. Mai 2009, 21:19, insgesamt 1-mal geändert.

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Problem mit Schleppnetzverfahren

Beitrag von shokwave »

sorry, hab quatsch geschrieben.. :roll:
mfg Ingo

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: Problem mit Schleppnetzverfahren

Beitrag von Alci »

shokwave hat geschrieben:sorry, hab quatsch geschrieben.. :roll:

Ja habe ich auch gerade gemerkt, wie willst du ein Char mit einem anderen Char zusammenrechnen. ;) Und außerdem braucht man das doch auch nicht. Sollte doch eigentlich jeder Buchstabe einzelnd übersetzt werden. ;)

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Problem mit Schleppnetzverfahren

Beitrag von shokwave »

Bin noch am gucken. was fütterst du denn an Daten? Schlüssel, Klartext.... und welchem edit steht was?

[EDIT]
Guckst du hier:

Code: Alles auswählen

for n:=1 to length(Edit1.Text) // Ist die Schleife jetzt richitg?
    do begin
      Geheim:= ''; //sollte vor der schleife stehen
mfg Ingo

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: Problem mit Schleppnetzverfahren

Beitrag von Alci »

Also
  • Edit1.Text - Klartext
  • Edit2.Text - Geheimtext
  • Edit3.Text - Schlüsselwort

Habe ich im Quelltext oben auch nochmal nachgetragen. ;)
Alci

shokwave
Beiträge: 470
Registriert: Do 15. Nov 2007, 16:58
OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
CPU-Target: i386, x64
Wohnort: Gera

Re: Problem mit Schleppnetzverfahren

Beitrag von shokwave »

Das das

Code: Alles auswählen

geheim :='';
vor die Schleife muss, hast du gesehen, oder?
mfg Ingo

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: Problem mit Schleppnetzverfahren

Beitrag von Alci »

shokwave hat geschrieben:Das das

Code: Alles auswählen

geheim :='';
vor die Schleife muss, hast du gesehen, oder?

Ja das habe ich gesehen, aber gestern war ich schon zu müde alles auszuprobieren, deswegen mich heute mal hingesetzt und getestet, und siehe da alles klappt. :) Damit ihr nochmal seht was ich verändert habe. :)

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;
 
type
 
  { TSchleppnetzverfahren }
 
  TSchleppnetzverfahren = class(TForm)
    Chiffrieren: TButton;
    Dechiffrieren: TButton;
    Klartext: TEdit;
    Geheimtext: TEdit;
    Schluesselwort: TEdit;
    procedure ChiffrierenClick(Sender: TObject);
    procedure DechiffrierenClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Schleppnetzverfahren: TSchleppnetzverfahren;
 
implementation
 
{ TSchleppnetzverfahren }
 
procedure TSchleppnetzverfahren.ChiffrierenClick(Sender: TObject);
var
  Schluessel, Geheim, Klar : string;
  n : integer;
  KlarZeichen, GeheimZeichen, SchluesselZeichen : char;
begin
  Geheimtext.Clear;
  Schluessel := Schluesselwort.Text;
  Klar := Klartext.Text;
  Geheim:= '';
  for n:=1 to length(Klartext.Text)
    do begin
      SchluesselZeichen:= Schluessel[1];
      delete(Schluessel,1,1);
      KlarZeichen := Klar[n];
      if KlarZeichen in ['A'..'Z']
      then Schluessel := Schluessel + KlarZeichen
      else Schluessel := Schluessel + 'A';
      if KlarZeichen in ['A'..'Z']
      then begin
        GeheimZeichen:= chr((ord(KlarZeichen)-65 + (ord(SchluesselZeichen)-65)) mod 26 + 65);
      end
      else GeheimZeichen := KlarZeichen;
      Geheim:= Geheim + GeheimZeichen;
  end;
  Geheimtext.Text := Geheim;
end;
 
procedure TSchleppnetzverfahren.DechiffrierenClick(Sender: TObject);
var
  Schluessel, Geheim, Klar : string;
  n : integer;
  KlarZeichen, GeheimZeichen, SchluesselZeichen : char;
begin
  Klartext.Clear;
  Schluessel := Schluesselwort.Text;
  Geheim := Geheimtext.Text;
  Klar:= '';
  for n:=1 to length(Geheimtext.Text)
    do begin
      SchluesselZeichen := Schluessel[1];
      delete(Schluessel,1,1);
      GeheimZeichen := Geheim[n];
      if GeheimZeichen in ['A'..'Z']
      then begin
        KlarZeichen:= chr((ord(GeheimZeichen)-65+26- (ord(SchluesselZeichen)-65)) mod 26 + 65);
      end
      else KlarZeichen := GeheimZeichen;
      if KlarZeichen in ['A'..'Z']
      then Schluessel := Schluessel + KlarZeichen
      else Schluessel := Schluessel + 'A';
      Klar := Klar + KlarZeichen;
  end;
  Klartext.Text := Klar;
end;
 
initialization
  {$I unit1.lrs}
 
end.

Nochmal vielen Dank für eure Hilfe. :)
Alci
/edit Thema als gelöst markieren gibt es hier nicht?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6208
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Problem mit Schleppnetzverfahren

Beitrag von af0815 »

Du kannst zB. den Titel des Threads ändern un dort gelöst anhängen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Alci
Beiträge: 29
Registriert: Mi 27. Mai 2009, 08:48
OS, Lazarus, FPC: Linux (L 0.9.26.2-0 FPC 2.2.2)
CPU-Target: 32Bit

Re: [Gelöst] Problem mit Schleppnetzverfahren

Beitrag von Alci »

OK. Gemacht. :) Jetzt werde ich dann mal mein Lazarus reparieren.
Project raised exception class 'External: SIGSEGV

Das zeigt wohl, dass es ein Problem beim Ausführen in Lazarus gibt. Kompilieren geht ja. :)
OK, mit meiner coolen Suche bin ich jetzt auf diesen Thread gestossen, werde das alles mal ausprobieren. Oder mich in einem neuen Thread melden. ;)
Alci

Antworten