Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi

Ответить
Настройки темы
Delphi - Delphi

Старожил


Сообщения: 225
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не подскажите ли где можно взять информацию по динамическим спискам.
В частности нужно создание, сортировка, вывод данных из списка, записи в фаил ну и естественно из файла...

-------
Нет такой плохой ситуации, которая не могла бы стать еще хуже.


Отправлено: 12:25, 19-10-2002

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Roman Go

type Tx = class; //опишешь сам как хочешь

var x:array of Tx;

Устанавливаешь размер как SetLength(x,NewSize);
Например, SetLength(x,0);
Удалять перед уменьшением размера и создавать после увеличения размера элементы самому надо.

Вот и вся наука.

А можешь сразу взять что-нибудь типа TList или TObjectList.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 12:37, 21-10-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 225
Благодарности: 0

Профиль | Отправить PM | Цитировать


vasketsov
Цитата:
type Tx = class
Такого я еще никогда не делал, если можно, то поподробнее...
А я вот как сделал динамичиский список:
Цитата:
type
 TPStat=^TStat;

 TStat = record
               znach:real;  
index: index;
next: TPStat;    // следующий элемент списка
 end;
как оценишь... вообще я не очень владею программированием поэтому, если можно то давайте ответы поподробнее

Вот с этой штукой, что вверху у меня не очень получается работать, когда нужно сохранить полученные данные в фаил


Я занялся динамическими списками так как в программе произвожу статические расчеты, и количество поступаемых данных раз от раза меняется и поэтому я посчитал, что использовать массивы будет не рационально, а когда работаешь с динамическим списком, то размер объекта, хранящего данные напрямую связан с количество этих данных...

-------
Нет такой плохой ситуации, которая не могла бы стать еще хуже.


Отправлено: 14:52, 21-10-2002 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Roman Go
Смотри сам, как оптимальнее осуществлять доступ, последовательно или прямо.
А то что ты написал, я видел как "Связный список".

Цитата:
меня не очень получается работать, когда нужно сохранить полученные данные в фаил
Тут проще  всего использовать file of TStat.
Приблему вижу только одну, это восстановить порядок элементов, то есть, если во 2-м указатель указывал на 1-й, то при чтении их из файла надо это поле игнорировать и заполнять его самому указателем на последний уже созданный объект. Но проще для файла будет именно array of TStat

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 14:59, 21-10-2002 | #4


Старожил


Сообщения: 225
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я тоже так думаю, мне наверное надо сохранять не структуру с динамическими указателями, как я делал, а только собственно данные, делать цикл и поочереди их брать(записывать) из(в) фаил и заполнять уже динамическую структуру с которой и работать... я все правильно сказал... указатель нельзя сохранить в файле или таки можно?

-------
Нет такой плохой ситуации, которая не могла бы стать еще хуже.


Отправлено: 15:24, 23-10-2002 | #5


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Roman Go
Цитата:
указатель нельзя сохранить в файле или таки можно?
Сохранить-то можно, только потом, после чтения, на что он будет указывать? Его потом поправить самому надо будет.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 17:35, 23-10-2002 | #6

Ant Ant вне форума

Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Там ты найдешь все алгоритмы, начиная от добавления в стеки и очереди, и заканивая сбалансированием деревьев.

Книга культовая, а понять все изложенное может даже молодой оранг-утан. Честно!

Отправлено: 01:21, 13-11-2002 | #7


Старожил


Сообщения: 225
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ant Спасибо за помощь, ничего не понял... наверное я уже старый
Цитата:
оранг-утан
не дано...

-------
Нет такой плохой ситуации, которая не могла бы стать еще хуже.


Отправлено: 03:51, 13-11-2002 | #8


Студент


Сообщения: 445
Благодарности: 8

Профиль | Отправить PM | Цитировать


Roman Go
Тип ты описал очень даже правильно, только нафиг тебе понадобилось поле index?
Запись в файл и из файла... Нужно записывать только данные, причём в порядке их следования. Считывать аналогично, причём до конца файла (ты не знаешь, сколько там элементов).

Что касается сортировки... Можно конечно пузырьком сортировать, но лучше сортировать слияниями.

П.С. Если памяти не жаль, то гораздо удобнее использовать "двусвязные списки" - то есть добавится ещё одно поле - parent...


Ant
Для новичка книжка конечно неплохая... Но молиться на неё не нужно, честное слово :-)

-------
*Origin: Lots of people talking, few of them - no... (2:5020/****.**)


Отправлено: 08:09, 13-11-2002 | #9


Старожил


Сообщения: 225
Благодарности: 0

Профиль | Отправить PM | Цитировать


noname00.pas вообще-то когда я начинал писать, то не знал об существовании такого понятия как динамические массивы и поэтому пытался все это проделать через списки, материал по которым у меня был... а потом случайно наткнулся на динамический массив и отказался от списков...

Код: Выделить весь код
  type TPmas:array of real
  
  procedure my();
  var mas:TPmas;
  begin
     setlength(mas, сколько элементов мне надо);
     setlength(mas, столько сколько элементов мне сейчас надо);
  end;
Васкетцов о чем-то подобном писал, но я абсолютно не понял о чем идет речь, а вникать не стал... зря...

-------
Нет такой плохой ситуации, которая не могла бы стать еще хуже.


Отправлено: 15:29, 13-11-2002 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Delphi - Delphi | UpperCase на Delphi 7 Cognolio Программирование и базы данных 3 26-01-2006 15:42
Delphi - Delphi Surround Программирование и базы данных 11 10-01-2004 22:13
Delphi - Delphi Zx Программирование и базы данных 3 27-08-2003 10:19
Delphi - Delphi Roman Go Программирование и базы данных 9 25-12-2002 15:48
Delphi - Delphi Roman Go Программирование и базы данных 11 11-12-2002 14:43




 
Переход