Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.09.2016, 23:42
WebManual WebManual вне форума
Прохожий
 
Регистрация: 22.09.2016
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Помогите с добавлялкой в список (ООП)

Здравствуйте, имеется такая задача: Нужна программа, в которую нужно забить информацию о файлам (Имя и размер), а эти файлы в свою очередь, были в контейнере, реализованном в виде адресного однонаправленного списка. Вот что получилось у меня:

Код:
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.

И

Код:
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) не уверен, что правильно описан адрессный однонаправленный список и не знаю как реализовать добавлялки :-( Гуру, помогите пожалуйста новичку, хочется разобраться...
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter