|
Feniks257 (статус: Посетитель), 29 октября 2011, 22:09 [#1]:
Здравствуйте, Gobov Lev: Что значит заданных символов? если задать символ, то как его перевернуть в каждом слове всего текста? могу только подсказать как перевернуть текст начиная с последнего символа, посимвольно.
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,math;
type
TForm9 = class(TForm)
IsxText: TMemo;
ShifrText: TMemo;
DShifrText: TMemo;
Clall: TButton;
Shifr: TButton;
DShifr: TButton;
Cl1: TButton;
Cl2: TButton;
Cl3: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Cl1Click(Sender: TObject);
procedure Cl2Click(Sender: TObject);
procedure Cl3Click(Sender: TObject);
procedure ShifrClick(Sender: TObject);
procedure DShifrClick(Sender: TObject);
procedure ClallClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
fDebug:TForm;
Memo1:Tmemo;
LDebug:Word=1;
i:integer;
a,b,c:string;
implementation
{$R *.dfm}
procedure TForm9.Cl1Click(Sender: TObject);
begin
IsxText.Clear;
end;
procedure TForm9.Cl2Click(Sender: TObject);
begin
ShifrText.clear;
end;
procedure TForm9.Cl3Click(Sender: TObject);
begin
DShifrText.clear;
end;
procedure TForm9.ClallClick(Sender: TObject);
begin
Memo1.Lines.clear;
IsxText.Clear;
ShifrText.clear;
DShifrText.clear;
end;
procedure TForm9.DShifrClick(Sender: TObject);
begin
if ShifrText.text='' then Application.MessageBox('Нет текста для дешифрования!','Внимание!');
Memo1.Lines.clear;
b:='';
a:=shifrText.Text;
for i := length(a) downto 1 do
begin
if (a[i+1]='.') or ((a[i+1]=' ') and (a[i+2]='.')) or
(a[i+1]='!') or ((a[i+1]=' ') and (a[i+2]='!')) or
(a[i+1]='?') or ((a[i+1]=' ') and (a[i+2]='?')) or
(i = length(a)) then
b:=b+AnsiUpperCase(a[i])
else
b:=b+a[i];
memo1.Lines.Add(inttostr(length(a)-i+1)+' символ '+a[i]+'= '+b );
DShifrText.Text:=b ;
end;
end;
procedure TForm9.FormCreate(Sender: TObject);
begin
IsxText.Clear;
ShifrText.Clear;
DShifrText.Clear;
SetExceptionMask([exInvalidop, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);
Ldebug:=1;
if Ldebug>0 then
begin
Fdebug:=Tform.Create(self);
Fdebug.Caption:='Отладка';
Memo1:=Tmemo.Create(fdebug);
Memo1.Parent:=Fdebug;
memo1.Align:=alclient;
Memo1.ScrollBars:=ssVertical;
Fdebug.Show;
end;
end;
procedure TForm9.FormDestroy(Sender: TObject);
begin
if Ldebug>0 then Fdebug.Release;
end;
procedure TForm9.ShifrClick(Sender: TObject);
var
str: string;
l: integer;
i,j: integer;
begin
if IsxText.text='' then
Application.MessageBox('Введите текст!','Внимание!');
Memo1.Lines.clear;
b:='';
a:=AnsiLowerCase(isxText.Text);;
for i := length(a) downto 1 do
begin
b:=b+a[i];
ShifrText.Text:=b;
Memo1.Lines.Add(inttostr(length(a)-i+1)+' символ '+a[i]+'= '+b );
end;
ShifrText.Text:=b;
{str:=memo1.text;
l:=length(str);
j:=0;
memo1.Clear;
for I := l downto 1 do
begin
j:=j+1;
IsxText.Text:=IsxText.text+str[i];
IsxText.text:=AnsiLowerCase(IsxText.text);
memo1.Lines.add (inttostr(j)+' символ ' + str[i]+'='+IsxText.text) }
end;
end.
|