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

Delphi Sources



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

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

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

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


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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