//看看function Calc(mText: string; mKey: string): string;
var
I, J: Integer;
vLenKey: Integer;
vLenText: Integer;
vMaskKey: string;
T: string;
begin
Result := '';
vLenKey := Length(mKey);
vLenText := Length(mText);
vMaskKey := '';
for I := 1 to vLenText div vLenKey + 1 do
vMaskKey := vMaskKey + mKey;
for I := 1 to vLenKey do begin
T := '';
for J := 1 to vLenText do
if mText[J] = vMaskKey[J] then
T := T + mText[J]
else begin
if Length(Result) < Length(T) then
Result := T;
T := '';
end;
if Length(Result) < Length(T) then
Result := T;
vMaskKey := vMaskKey + vMaskKey[Length(vMaskKey)];
Delete(vMaskKey, 1, 1);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := Calc(Edit1.Text, Edit2.Text);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := 'abbcabcabb';
Edit2.Text := 'abc';
end;
var
I, J: Integer;
vLenKey: Integer;
vLenText: Integer;
vMaskKey: string;
T: string;
begin
Result := '';
vLenKey := Length(mKey);
vLenText := Length(mText);
vMaskKey := '';
for I := 1 to vLenText div vLenKey + 1 do
vMaskKey := vMaskKey + mKey;
for I := 1 to vLenKey do begin
T := '';
for J := 1 to vLenText do
if mText[J] = vMaskKey[J] then
T := T + mText[J]
else begin
if Length(Result) < Length(T) then
Result := T;
T := '';
end;
if Length(Result) < Length(T) then
Result := T;
vMaskKey := vMaskKey + vMaskKey[Length(vMaskKey)];
Delete(vMaskKey, 1, 1);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := Calc(Edit1.Text, Edit2.Text);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := 'abbcabcabb';
Edit2.Text := 'abc';
end;
if Length(Result) < Length(T) then
Result := T;
vMaskKey := vMaskKey + vMaskKey[1]; //Length(vMaskKey) -> 1
Delete(vMaskKey, 1, 1);
end;
end;
//........