![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не, ну вообще прикл...
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;