📄 subsponlinestate.pas
字号:
{*******************************************************}
{ }
{ 荆鹏亿信分公司SP系统 }
{ }
{ 子SP服务商在线存放单元 }
{ }
{ 程序员:宋伟华 2004.3.12 }
{ }
{ 版权 (c) 2003-2004 荆鹏软件开发有限公司 }
{ }
{*******************************************************}
unit SubSPOnlineState;
interface
uses
sysUtils,Dialogs,Windows,DataStrucClass,iniFiles,Forms,Classes,ActiveX,share;
type
PNode=^SubSPNode;
SubSPNode=record
MinVal,MaxVal:string;
RptCntInDB:Cardinal;
NextNode:PNode;
end;
TSubSPOnlineLink=class
private
SubSPLink:PNode;
public
constructor Create;
procedure AddNode(MinVal,MaxVal:string);
procedure DelNode(MinVal,MaxVal:string);
function FindSubSP(SPID:string):boolean;
function toString:string;
end;
implementation
{ SubSPOnlineLink }
procedure TSubSPOnlineLink.AddNode(MinVal,MaxVal:string);
var
NewNode,q,p:PNode;
begin
q:=SubSPLink;
p:=SubSPLink;
while p<>nil do
begin
if TShare.compareIntegerStr(p^.MinVal,MinVal)=0 then
Exit;
q:=p;
p:=p^.NextNode;
end;
new(NewNode);
NewNode^.MinVal:=MinVal;
NewNode^.MaxVal:=MaxVal;
NewNode^.NextNode:=nil;
if SubSPLink=nil then
SubSPLink:=NewNode
else q^.NextNode:=NewNode;
end;
constructor TSubSPOnlineLink.Create;
begin
SubSPLink:=nil;
end;
procedure TSubSPOnlineLink.DelNode(MinVal,MaxVal:string);
var
q,p:PNode;
begin
q:=SubSPLink;
p:=SubSPLink;
while (p<>nil) and (not (TShare.compareIntegerStr(p^.MinVal,minVal)=0)) do
begin
q:=p;
p:=p^.NextNode;
end;
if (p<>nil) then
begin
if p=q then
SubSPLink:=p^.NextNode
else q^.NextNode:=p^.NextNode;
Dispose(p);
end;
end;
function TSubSPOnlineLink.FindSubSP(SPID:string): boolean;
var
p:PNode;
minRlt,maxRlt:shortint;
begin
Result:=false;
p:=SubSPLink;
while p<>nil do
begin
minRlt:=TShare.compareIntegerStr(spid,p^.MinVal);
maxRlt:=TShare.compareIntegerStr(spid,p^.MaxVal);
if ((minRlt=0) or (minRlt=1)) and ((maxRlt=0) or (maxRlt=-1)) then
begin
Result:=true;
Break;
end;
p:=p^.NextNode;
end;
end;
function TSubSPOnlineLink.toString:string;
var
tmpStr:string;
p:PNode;
begin
p:=SubSPLink;
while p<>nil do
begin
if tmpStr<>'' then
tmpStr:=tmpStr+',['+p^.MinVal+','+p^.MaxVal+']'
else tmpStr:='['+p^.MinVal+','+p^.MaxVal+']';
p:=p^.NextNode;
end;
if tmpStr='' then tmpStr:='null';
result:=tmpStr;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -