Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не, ну вообще прикл...


Страницы:   1 2

VitHouse ©   (2001-12-27 10:25:00) 

Увожаемые Мастера!

Как сохранять данные в файл, при том они могут быть разного типа
Например

TMonitor = record
Name: string;
ModelNo: integer;
end;

TComputer = record
ProcName: string;
ProcMHZ: integer;
end;


Допустим у нас два массива из мониторов и компьютеров. Как всё это сохранить в ОДИНфайл, а потоп читать из него?


gek   (2001-12-27 12:27:00) [21]

Да ничего там сложного не будет
выборку сделай по ключу типа
case key of
1:комп
2:монитор
..
10:мышь
end;


Алексей Петров   (2001-12-27 12:14:00) [22]

Ну введи в каждой записи первым полем байт с её размером или типом - при чтении по нему будешь разбираться, что-же такое прочиталось, и сколько байт нужно до следующей записи читать. Только от типизированного файла тогда отказаться придется - он работает строго с одним типом.


VitHouse   (2001-12-27 12:11:00) [23]

а что разве разные типы нельзя одновременно хранить?
зачем усложняться-то. Выглядит не рационально!


gek   (2001-12-27 12:07:00) [24]

Или именно так (у меня как-то на турбо 7.0 около 20 полей в записи было и все енто дело в файл писал),
или делай как тебе Delirium сказал с БД работать.
Ну и последнее - упакуй запись packedи используй в записи caseесли уж так хочется работать таким образом


VitHouse   (2001-12-27 12:00:00) [25]

>gek
у меня 14 разных типов, и чё делать?

TComputerMonitorUserMousePrintersFloorPaperXerox?


gek   (2001-12-27 11:03:00) [26]

Блин ну сделай выборку из записи

TComputerMonitor = record
ProcName: string;
ProcMHZ: integer;
Name: string;
ModelNo: integer;
end;

if ProcMHZ = 0 then//енто комп
else// енто монитор


Какие проблемы? Ну и пиши радостью в один файл-будешь счастлив


VitHouse   (2001-12-27 10:54:00) [27]

THX!
да нет это просто пример, есть прога "расчет ЧЕГО-то", в которой просто ведется проект, и там куча разных типов, но это не должно работать как БД. Файл записывается, другой юзверь в нем чё-то творит и так далее... как в Ворде, или Ёкселе)


Delirium   (2001-12-27 10:48:00) [28]

Тогда это уже вопрос по БД, советую немного почитать по этому поводу и обращаться в раздел Вопросы по базам данных


VitHouse   (2001-12-27 10:42:00) [29]

Спасибо за интерес!
Рад познакомиться))

дело в том что мониторов и компьютеров может быть разное число, да и ещё в структуре + поле индексной связи(hComputer: THandle), т.е. мониторы отдельно, компы отдельно.
Бытовая ситуация: Монитор сгорел, купили новый, подцепили к какому то компу и т.д.
!!???


gek   (2001-12-27 10:30:00) [30]

Записи одинаковые зачем две делать сделай одну
TComputerMonitor = record
ProcName: string;
ProcMHZ: integer;
Name: string;
ModelNo: integer;
end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо