Delphi . , Delphi, (Char). , .
. .., , () . () .
7: va r Buf: ShortString;
C: char;
procedure TForm1.Button1Click(Sender: TObject);
Begin
Buf:='D lphi';
C:='A';
Buf[2]:='e';
Edit1.Text:=Buf;
Edit2.Text:= IntToStr(Ord(Buf[0]));
Buf[7]:=C;
Edit3.Text:=Buf;
Edit4.Text:= IntToStr(Ord(Buf[0]));
end;
. 7 (. . 1) Edit1 Delphi, Edit2 - 6, Edit3 - Delphi, Edit4 - 6.
:
1. , (>, >=, <,,<=, =, <>);
2. (), +.
. 1. 7.
8: var Line:string;
procedure TForm1.Button1Click(Sender: TObject);
Begin
Line:=¢1234¢;
Line:= Line + ¢abc¢
Edit1.Text:= Line;
end;
8 Edit1 ¢1234abc¢.
, .
: , . . , , .
: s1;
: s2.
. 2.
. 2. .
:
l - ;
dl - ;
a - , dl ; , , - ;
i - ;
ss1 - ;
sst - ;
m - ;
l1 - .
Struct, , . 3.
|
|
. 3. Struct.
:
s - ;
l - ;
:
a - , ;
k - ( s)
:
c - ;
i - s ( ).
(Schet) . 4.
.4. Schet -
i- .
:
sst - ;
s1 - ;
i - ;
dl - ;
a - , ;
:
m - (i-) .
, (Prov1) . 5.
.5. Prov1 - , .
:
sst - ;
s1 - ;
n - , ;
a - , ;
:
f - - ( f = false).
:
j - ;
ss - j- .
, (Prov2) . 6.
. 6. Prov2 - , .
:
sst - ;
s1 - ;
i1 - , ;
i2 - ;
a - , ;
:
m1 - .
:
j - ;
ss - j- .
program Project_str;
Uses
Forms,
Unit_str in 'Unit_str.pas' {Form1};
{$R *.res}
Begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
unit Unit_str;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
Type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit; //
Label2: TLabel;
Edit2: TEdit; //
Button1: TButton; //
Button2: TButton; //
Memo1: TMemo;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
End;
Var
Form1: TForm1;
Implementation
|
|
{$R *.dfm}
type Tst r = array [1..15,1..2] of integer;
var s1,s2:string;
procedure Strukt(s1:string;l:integer; var a:tstr; var k:integer);
var c,i:integer;
Begin
k:=0;
c:=0;
for i:=1 to l do
if (s1[i]=' ') or (s1[i]=',')
Then
Begin
if c>0 then
Begin
k:=k+1;
a[k,1]:=i-c;
a[k,2]:=c;
c:=0;
end;
End
else c:=c+1;
end;
function Prov1(sst,s1:string;n:integer;a:tstr): boolean;
var j:integer;
ss:string;
Begin
Result:= true;
for j:=1 to n do
Begin
ss:=copy(s1,a[j,1],a[j,2]);
if ss=sst then
result:=false;
end;
end;
function Prov2 (sst,s1:string;i1,i2:integer;a:tstr):integer;
var j,m1:integer;
ss:string;
Begin
m1:=1;
fo r j:=i1 to i2 do
Begin
ss:=copy(s1,a[j,1],a[j,2]);
if ss=sst then
m1:=m1+1;
end;
result:=m1;
end;
function Schet (sst,s1:string;i:integer;a:tstr;k:integer):integer;
var f1: boolean;
m:integer;
Begin
m:=1;
f1:=prov1(sst,s1,i-1,a);
if f1 then
m:=prov2(sst,s1,i+1,k,a);
Result:=m;
end;
procedure TForm1.Button1Click(Sender: TObject);
var a:tstr;
ss1,sst:string;
m,i,l,dl:integer;
Begin
s1:=edit1.Text;
s1:=s1+' ';
l:=length(S1);
if l>1 then
Begin
strut(s1,l,a,dl);
if dl>1 then
Begin
ss1:=copy(s1,a[1,1],a[1,2]);
s2:='';
for i:=2 to dl do
Begin
sst:=copy(s1,a[i,1],a[i,2]);
if ss1<>sst then
Begin
m:=Schet(sst,s1,i,a,dl);
if m>2 then
s2:=s2+sst+' ';
end;
end;
if length(s2)>0 then
edit2.Text:=s2
else ShowMessage(' ');
End
else ShowMessage(' ');
End
else ShowMessage(' ');
end;
procedure TForm1.Button2Click(Sender: TObject);
Begin
edit1.Clear;
edit2.Clear;
edit1.SetFocus;
end;
end.