Einzelnen Beitrag anzeigen

Rawsche

Registriert seit: 18. Jul 2018
16 Beiträge
 
#17

AW: Zeichen in Memo ersetzten und Formatierung beibehalten?!

  Alt 15. Aug 2018, 13:51
Hi,

bis auf ein kleines Problem habe ich Fortschritte gemacht. Ich bin auf Funktionen umgestiegen. Der Text lässt sich umwandeln und auch wieder zurückwandeln.

Ein Problem tritt nur auf. Bei mir wird in der Verschlüsselung jedes Leerzeichen durch ein ß ersetzt. Jedes ß wird zum Leerzeichen.
Bei der Entschlüsselung ist es umgekehrt. Soweit alles geplant.

Leider tritt bei jeder Umwandlung von einem ß ein Fehler auf. Das ß wird nicht durch ein Leerzeichen ersetzt, sondern es bleibt ein ß, egal ob Ver- oder Entschlüsselung. Kann es sein, dass ein ß nicht mit einem ß verglichen werden kann oder dass ein bestehendes ß nicht durch ein Leerzeichen ersetzt werden kann?

Vielen Dank


Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
  StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    function Coding(x: string): string;
    function Decoding(x: string): string;

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

function TForm1.Coding(x: string): string;
var
  i: integer;
  y: string;
begin
  y := x;
  for i := 0 to listbox1.items.Count - 1 do
  begin
    if x = listbox1.items[i] then
    begin
      y := listbox2.items[i];
    end;
  end;

  Result := y;
end;

function TForm1.Decoding(x: string): string;
var
  i: integer;
  y: string;
begin
  y := x;
  for i := 0 to listbox2.items.Count - 1 do
  begin
    if x = listbox2.items[i] then
    begin
      y := listbox1.items[i];
    end;
  end;

  Result := y;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  i2: integer;
  x: string;
begin
  label2.Caption := '';
  memo2.Clear;
  for i := 0 to (Memo1.Lines.Count - 1) do
  begin
    label1.Caption := memo1.Lines.strings[i];
    for i2 := 1 to length(label1.Caption) do
    begin
      x := label1.Caption[i2];
      x := coding(x);
      label2.Caption := label2.Caption + x;

    end;
    memo2.Lines[i] := (label2.Caption);
    label2.Caption := '';
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
  i2: integer;
  x: string;
begin
  label2.Caption := '';
  memo3.Clear;
  for i := 0 to (Memo2.Lines.Count - 1) do
  begin
    label1.Caption := memo2.Lines.strings[i];
    for i2 := 1 to length(label1.Caption) do
    begin
      x := label1.Caption[i2];
      x := decoding(x);
      label2.Caption := label2.Caption + x;

    end;
    memo3.Lines[i] := (label2.Caption);
    label2.Caption := '';
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if edit1.text='ßthen showmessage('');
end;

end.
  Mit Zitat antworten Zitat