Скачиваний:
5
Добавлен:
01.05.2014
Размер:
1.45 Кб
Скачать
program GalkaVV;
uses AbsObj,crt;
type

PParamItem=^TParamItem;
TParamItem=record
Name,Value:string;
end;

PParamFifo=^TParamFifo;
TParamFifo=object (TFifo)
{ private
AList,BList:PListItem;
public
constructor Init;
destructor Done;
procedure Put(Element: pointer);
function Get:pointer;}
procedure SetParam(AName,AValue:string);
function GetParam(AName:string):string;
procedure FreeItem(AItem: pointer); virtual;
end;

procedure TParamFifo.FreeItem(AItem: pointer);
var
Tmp:PParamItem;
begin
Tmp:=AItem;
Dispose(Tmp);
end;

procedure TParamFifo.SetParam(AName,AValue:string);
var
Tmp:PParamItem;
begin
New(Tmp);
Tmp^.Name:=AName;
Tmp^.Value:=AValue;
Put(Tmp);
end;

function TParamFifo.GetParam(AName:string):string;
var
TmpList:PListItem;
Tmp:PParamItem;
Str:string;
begin
Tmplist:=AList;
while TmpList<>nil do
begin
Tmp:=TmpList^.Data;
if Tmp=nil then TmpList:=TmpList^.Next
else
if AName<>Tmp^.Name then TmpList:=TmpList^.Next
else
begin
GetParam:=Tmp^.Value;
exit;
end;
end;
if TmpList=nil then GetParam:='';
end;
var
List:PParamFifo;
begin

New(List,Init);
with List^ do
begin
SetParam('Name1','Value4');
SetParam('Name2','Value3');
SetParam('Name3','Value2');
SetParam('Name4','Value1');
writeln(Getparam('Name8'));
writeln(Getparam('Name1'));
writeln(Getparam('Name3'));
end;
Dispose(List,Done);
end.
Соседние файлы в папке Вопросы к экзамену с ответами и демо-программами на Паскале