📄 llowf.~pas
字号:
unit llowf;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tlow = class(TForm)
Memo6: TMemo;
Memo7: TMemo;
Memo8: TMemo;
Button2: TButton;
GOOD: TLabel;
POOR: TLabel;
Label1: TLabel;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
Memo5: TMemo;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
low: Tlow;
def: Tdef;
a: array[0..5, 0..3] of string;
i, j, k: integer;
DataVar: TDataVar;
DataVar1: TDataVar;
DataVar2: TDataVar;
DataVar3: TDataVar;
DataVar4: TDataVar;
str, str_temp: string;
wz, lenth, m: integer;
implementation
{$R *.dfm}
uses dm, lproductex;
procedure Tdef.FormCreate(Sender: TObject);
var i:integer;
begin
Q_productinfo.Close;
Q_productinfo.SQL.Text:='select * FROM '+DatabaseName+'decision ';
Q_productinfo.Open;
Q_productinfo.First;
i:=0;
while not Q_productinfo.Eof do
begin
a[i][0]:=Q_productinfo.FieldByName('price').asstring;
a[i][1]:=Q_productinfo.FieldByName('Mileage').asstring;
a[i][2]:=Q_productinfo.FieldByName('size').asstring;
a[i][3]:=Q_productinfo.FieldByName('Max-speed').asstring;
i:=i+1;
if i=6 then break;
Q_productinfo.Next;
end;
DataVar := compact1;
DataVar1 := compact(0);
DataVar2 := compact(1);
DataVar3 := compact(2);
DataVar4 := compact(3);
for i := 0 to 5 do
begin
Memo1.Lines.Add(DataVar[i]);
Memo2.Lines.Add(DataVar1[i]);
Memo3.Lines.Add(DataVar2[i]);
Memo4.Lines.Add(DataVar3[i]);
Memo5.Lines.Add(DataVar4[i]);
end;
if DataVar = DataVar1 then
begin
ResetValue(0);
Q_productinfo.Close;
Q_productinfo.SQL.Text:='select * FROM '+DatabaseName+'decision ';
Q_productinfo.Open;
begin
Q_productinfo.FieldByName('price').asstring:=a[i][0];
Q_productinfo.FieldByName('Mileage').asstring:=a[i][1];
Q_productinfo.FieldByName('size').asstring:=a[i][2];
Q_productinfo.FieldByName('Max-speed').asstring:=a[i][3];
i:=i+1;
if i=6 then break;
end;
end;
if DataVar = DataVar2 then ResetValue(1);
if DataVar = DataVar3 then ResetValue(2);
if DataVar = DataVar4 then ResetValue(3);
end;
function Tdef.compact(l: integer): TDataVar;
var DataVar_sat: TDataVar;
bj: Boolean;
begin
SetLength(DataVar_sat, 6);
for k := 0 to 5 do
begin
for i := 0 to 5 do
begin
bj := True;
for j := 0 to 3 do
begin
if j <> l then
begin
if ((a[k, j] <> a[i, j]) and (a[k, j] <> '*') and (a[i, j] <> '*')) then
begin
bj := false;
break;
end;
end;
end;
if bj = True then
begin
DataVar_sat[k] := DataVar_sat[k] + (IntToStr(i + 1));
end;
end;
end;
Result := DataVar_sat;
end;
function Tdef.compact1: TDataVar;
var DataVar_sat: TDataVar;
bj: Boolean;
begin
SetLength(DataVar_sat, 6);
for k := 0 to 5 do
begin
for i := 0 to 5 do
begin
bj := True;
for j := 0 to 3 do
begin
if ((a[k, j] <> a[i, j]) and (a[k, j] <> '*') and (a[i, j] <> '*')) then
begin
bj := false;
break;
end;
end;
if bj = True then
begin
DataVar_sat[k] := DataVar_sat[k] + (IntToStr(i + 1));
end;
end;
end;
Result := DataVar_sat;
end;
procedure Tdef.ResetValue(col: integer);
begin
a[0, col] := '*';
a[1, col] := '*';
a[2, col] := '*';
a[3, col] := '*';
a[4, col] := '*';
a[5, col] := '*';
end;
function Tdef.PosEx(const SubStr, S: string): integer; //取出第一个已知字符的位置
var
i, X: integer;
begin
i := 1;
while i <= Length(S) do
begin
if S[i] <> SubStr then Inc(i);
if S[i] = SubStr then
begin
Result := i;
exit;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -