Delphi - Delphi

Аватара пользователя
Roman Go

Delphi - Delphi

Сообщение Roman Go »

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

В частности нужно создание, сортировка, вывод данных из списка, записи в фаил ну и естественно из файла...
Аватара пользователя
Roman Go

Re: Delphi - Delphi

Сообщение Roman Go »

Roman Go



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



var x:array of Tx;



Устанавливаешь размер как SetLength(x,NewSize);

Например, SetLength(x,0);

Удалять перед уменьшением размера и создавать после увеличения размера элементы самому надо.



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



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

Re: Delphi - Delphi

Сообщение Roman Go »

Roman Go

 Лови на Мыло. Написано давненько но посмотреть стоит. Не пугайся названиям ( :-) ) - читай и переводи на русский по порядку следования.
Аватара пользователя
vasketsov

Re: Delphi - Delphi

Сообщение vasketsov »

vasketsov


Цитата:



type Tx = class



Такого я еще никогда не делал, если можно, то поподробнее...
А я вот как сделал динамичиский список:


Цитата:



type

 TPStat=^TStat;



 TStat = record

               znach:real;  

index: index;

next: TPStat;    // следующий элемент списка

 end;



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


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



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

Re: Delphi - Delphi

Сообщение vasketsov »

Roman Go

Смотри сам, как оптимальнее осуществлять доступ, последовательно или прямо.

А то что ты написал, я видел как "Связный список".




Цитата:



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



Тут проще  всего использовать file of TStat.

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

Re: Delphi - Delphi

Сообщение Roman Go »

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

Re: Delphi - Delphi

Сообщение Roman Go »

Roman Go


Цитата:



указатель нельзя сохранить в файле или таки можно?



Сохранить-то можно, только потом, после чтения, на что он будет указывать? Его потом поправить самому надо будет.
Аватара пользователя
vasketsov

Re: Delphi - Delphi

Сообщение vasketsov »

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



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



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

Re: Delphi - Delphi

Сообщение Roman Go »

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


Цитата:



оранг-утан



не дано...
Аватара пользователя
Roman Go

Re: Delphi - Delphi

Сообщение Roman Go »

Roman Go

Тип ты описал очень даже правильно, только нафиг тебе понадобилось поле index?

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



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



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





Ant

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

Вернуться в «Программирование и базы данных»