Помощь - Поиск - Пользователи - Календарь
Полная версия: Простейшая БД
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
murphy
Нужен совет.

Есть типизированый файл записей. Из него надо в память загнать записи (потом их еще сортировать надо будет и тд. ...).

Вопрос:
Как это лучше зделать?

З.Ы.
обычным массивом не хочеться blink.gif
Altair
Цитата
З.Ы.
обычным массивом не хочеться

используй ДСД на цвет и на вкус свой: ДСД
Romtek
Считываешь записи как обычно, а вот динамический массив создать лучше так:
type
TInfo = record
Age: integer; { возраст }
Name: string [20];
end;
Tarr = array[0..0] of TInfo;

Var
Ptr: ^Tarr; {указатель на дин. массив}
Info: TInfo;
Nrec: integer;

...
Nrec := FileSize div SizeOf (TInfo); { узнаём кол-во записей в файле }

GetMem(Ptr, Nrec * SizeOf (TInfo));
...
{
считываем из файла, Ptr^[i] := Info; - считанную запись заносим в память
сортируем
записываем обратно или ещё куда-то
}
...
FreeMem(Ptr, Nrec * SizeOf (TInfo));
...

Как сортировать смотри в Как упорядочить данные по возрастанию?
volvo
Romtek, а у нас тоже есть (причем твое же cool.gif )
Как упорядочить данные по возрастанию (пример для массива записей)
Romtek
To: volvo
Я помню, только на Сорцах я упростил код, добавил ввод/вывод и можно скачать рабочий пример.
Fang
Цитата
Есть типизированый файл записей. Из него надо в память загнать записи (потом их еще сортировать надо будет и тд. ...).


Насколько я понимаю, типизированный файл записей это вовсе не БД.
В БД помимо записей храниться информация о структуре этих записей.
murphy
Спасибо! smile.gif

ЗЫ
To: Fang
А я и не говорил что типизированный файл записей это БД
Altair
Цитата
типизированный файл записей это вовсе не БД.

почему бы и нет
база данных это таблица или множество таблиц, которые могут быть нормализованны, или нет. как ее записывать - зависит от желания и вкуса разработчика.
murphy
С массивом понятно.
А как в него доавить еще одну запись? blink.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.