Здравствуйте, имеется такая задача: Нужна программа, в которую нужно забить информацию о файлам (Имя и размер), а эти файлы в свою очередь, были в контейнере, реализованном в виде адресного однонаправленного списка. Вот что получилось у меня:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | unit FailU;
interface
type
TFail = class
private
NameFile: string ;
SizeFile: integer ;
Next:TFail;
public
constructor Create(aName: string ; aSize: integer );
function GetName: string ;
function GetSize: integer ;
procedure SetName(aName: string );
procedure SetSize(aSize: integer );
function GetNext (Next:TFail);
procedure SetNext (aNext:TFail);
end ;
implementation
constructor TFail . Create(aname: string ; asize: Integer );
begin
NameFile:=aName;
SizeFile:=aSize;
end ;
procedure TFail . SetName(aname: string );
begin
NameFile:=aName;
end ;
procedure TFail . SetSize(asize: Integer );
begin
SizeFile:=aSize;
end ;
function TFail . GetName;
begin
result:=NameFile;
end ;
function TFail . GetSize;
begin
result:=SizeFile;
end ;
procedure TFail . SetNext(anext: TFail);
begin
next:=anext;
end ;
function TFail . GetNext(next: TFail);
begin
result:=next;
end ;
end .
|
И
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | unit Katalog;
interface
uses
Dialogs, FileU;
type
TKatalog = class
private
Name: string ;
pFirst: TBuilding;
Count: integer ;
public
Constructor Create(aName: string );
procedure SetName(aNameKatalog: string );
function GetName: string ;
function TKatalog . SearchFile(anamefile: string ):TFail;
procedure AddFile(aFile:TFile);
function GetName: string ;
procedure SetName(aName: string );
end ;
implementation
constructor TKatalog . Create(Name: string );
begin
Name:=aName;
pFirst:= nil ;
count:= 0 ;
end ;
function TKatalog . SearchFile(anamefile: string ):TFail;
var pTemp:TFail;
begin
if Count= 0 then ShowMessage( 'Поиск невозможен! Нет файлов для поиска!' ) else
begin
pTemp:=pFirst;
while (pTemp<> nil ) do
if (pTemp . GetName = anamefile) then
begin
result:=pTemp;
break;
end
else pTemp:=pTemp . GetNext;
end ;
end ;
procedure AddFile(aFile:=TFile);
var pTemp:TFile;
Begin
if count= 0 then
begin
aFile . SetNext(pFirst);
pFirst:=aFile;
Inc(count);
else
pTemp:=SearchFile(anamefile);
if (pTemp<> nil ) then
aFile . SetNext()
End ;
end .
|
С контейнером у меня проблемы, (ЮНИТ2) не уверен, что правильно описан адрессный однонаправленный список и не знаю как реализовать добавлялки :-( Гуру, помогите пожалуйста новичку, хочется разобраться...