unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 =
class(TForm)
edString: TEdit;
//Die Eingabezeile mit der zu manipulierenden Zeichenkette
edStelle: TEdit;
//Angabe einer Zeichenposition für die Manipulationen gemäß Aufgabe
edZeichen: TEdit;
//Angabe Zeichen, das in der Zeichenkette gesucht, gelöscht... wird
edLen: TEdit;
//Länge der zu manipulierenden Zeichenkette in edString
edCount: TEdit;
//Anzahl der Zeichen v. edZeichen.Text in edString.Text
Label1: TLabel;
Label2: TLabel;
//Die Labels dienen der Beschriftung der Eingabezelen
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
//Dann kommen versch. Buttons zur Manipulation der Zeichenkette
btnOhneErstes: TButton;
//Erstes Zeichen löschen
btnOhneLetztes: TButton;
//Letztes Zeichen löschen
btnLoescheStelle: TButton;
//Zeichen an Position StrToInt(edStelle.Text) löschen
btnEinfg: TButton;
//Zeichen an Position StrToInt(edStelle.Text) einfügen
btnAllesGross: TButton;
//Zeichen steht in edZeichen.Text
btnAllesKlein: TButton;
//Alles groß/klein dürfte klar sein
btnAnzahlZeichen: TButton;
//Anzahl der Vorkommen des edZeichen.Text in edString.Text
btnEntfZeichen: TButton;
//Alle Zeichen in edString.Text = edZeichen.Text -> raus
btnUmkehr: TButton;
//edString.Text rückwärts
RadioGroup1: TRadioGroup;
//Palindrom? <Otto? -> JA> <Karre? NEIN>
procedure edStringChange(Sender: TObject);
//Bei Änderung Exception ==> WARUM???
procedure FormCreate(Sender: TObject);
procedure btnLoescheStelleClick(Sender: TObject);
//Die Event-Handler
procedure btnOhneLetztesClick(Sender: TObject);
procedure btnOhneErstesClick(Sender: TObject);
procedure btnEinfgClick(Sender: TObject);
procedure btnAllesGrossClick(Sender: TObject);
procedure btnAllesKleinClick(Sender: TObject);
procedure btnAnzahlZeichenClick(Sender: TObject);
procedure btnEntfZeichenClick(Sender: TObject);
procedure btnUmkehrClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
function CountOfChar(ch: char): Integer;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function TForm1.CountOfChar(ch: char): Integer;
var CCount,i: Integer;
begin
Result := 0;
for i := 1
to Length(edString.Text)
do
if edString.Text[i] = ch
then inc(CCount);
Result := CCount;
end;
procedure TForm1.edStringChange(Sender: TObject);
begin
edLen.Text := IntToStr(Length(edString.Text));
edCount.Text := IntToStr(CountOfChar(edZeichen.Text[1]))
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
edString.Text := '
Rallye';
edStelle.Text := '
';
edZeichen.Text := '
';
edLen.Text := '
';
edCount.Text := '
';
end;
procedure TForm1.btnLoescheStelleClick(Sender: TObject);
var NewString:
String;
begin
if edStelle.Text = '
'
then
begin
ShowMessage('
Bitte zuerst Stellenzahl eingeben!');
Exit;
end;
NewString := edString.Text;
System.Delete(NewString,StrToInt(edStelle.Text),1);
edString.Text := NewString;
end;
procedure TForm1.btnOhneLetztesClick(Sender: TObject);
var NewString:
String;
begin
NewString := edString.Text;
Delete(NewString,Length(edString.Text),1);
edString.Text := NewString;
end;
procedure TForm1.btnOhneErstesClick(Sender: TObject);
var NewString:
String;
begin
NewString := edString.Text;
Delete(NewString,1,1);
edString.Text := NewString;
end;
procedure TForm1.btnEinfgClick(Sender: TObject);
var NewString:
String;
begin
NewString := edString.Text;
Insert(edZeichen.Text,NewString,StrToInt(edStelle.Text));
edString.Text := NewString;
end;
procedure TForm1.btnAllesGrossClick(Sender: TObject);
begin
edString.Text := UpperCase(edString.Text);
end;
procedure TForm1.btnAllesKleinClick(Sender: TObject);
begin
edString.Text := LowerCase(edString.Text);
end;
procedure TForm1.btnAnzahlZeichenClick(Sender: TObject);
begin
edCount.Text := IntToStr(CountOfChar(edZeichen.Text[1]))
end;
procedure TForm1.btnEntfZeichenClick(Sender: TObject);
var i: Integer; NewString:
String;
begin
NewString := edString.Text;
for i:=1
to Length(NewString)
do
if edString.Text[i] = edZeichen.Text[1]
then
begin
Delete(NewString,i,1);
end;
edString.Text := NewString;
end;
procedure TForm1.btnUmkehrClick(Sender: TObject);
var temp:
string;
idx: Integer;
begin
for idx := Length(edString.Text)
downto 1
do
temp := temp + edString.Text[idx];
end;
end.