|
#1
|
|||
|
|||
Тест
Пишу программу тест! В ней будет возможность создавать свои собственные тесты (короче конструктор тестов). Вся информация будет записываться в один файл! Так вот вопрос: какой файл лучше выбрать для записи всего этого дела. И меня в тесте несколько типов заданий, для каждого использую отдельную запись плюс еще общая информация! Думаю сначала нужно общую информацию вписать, потом все записи с заданиями, но вот как потом их прочитать от туда правильно вот в чём проблема?
|
#2
|
|||
|
|||
да любой. какой удобнее парсить.
хоть типизированный от объекта/записи и сливать все это дело в бинарном формате через filestream, хоть бд подними, хоть xml используй. Чесслово (с), с чем умеешь работать - то и удобнее. |
#3
|
|||
|
|||
на счёт filestream, как можно обратится к записи, которая будет записана под определенным порядковым номером, если я её размер не знаю, там ведь только курсор перемещать можно по байтам? или есть другой способ?
|
#4
|
|||
|
|||
Цитата:
как обходной вариант, объединять все записи тестов в, например, массив или TList и сливать/читать целиком его и обращаться по индексу в уже загруженном состоянии. кстати, что мешает узнать размер записи через SizeOf? Имею ввиду размер конкретного теста, перед его сливом в файл. |
#5
|
|||
|
|||
с массивом не получится, записи разные (Variant даже не подходит), можно по подробнее на счёт TList!
|
#6
|
|||
|
|||
Цитата:
Вот только по поводу добавления туда разных записей не могу сказать - просто не приходилось использовать. Попробуй создать без указания параметров, просто как List:= TList.Create; |
#7
|
|||
|
|||
таже тема, типы не совместимы(
|
#8
|
||||
|
||||
Цитата:
1 - Идентификатор файла. 2 - Число записей. 3 - Длина записи. 4..х - Описание полей записей. х+1 - смещение в файле на запись. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
|||
|
|||
Цитата:
|
#10
|
||||
|
||||
Поэтому предлагаю подобную структуру.
P.S. У меня подобная во многих проектах используется. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
Цитата:
|
#12
|
||||
|
||||
именно так.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
|||
|
|||
Извиняюсь, не правильно выразился.
Имел ввиду "Перечисление всех длин всех записей". Стоит читать так? Иначе я не понимаю, как контролировать смещение в случае записей с разной длиной. Последний раз редактировалось nixel, 21.03.2012 в 22:32. |
#14
|
||||
|
||||
Цитата:
Смещение высчитывается при записи структуры в файл. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#15
|
|||
|
|||
смещение указывается для каждой записи отдельно?
тогда все понятно, спасибо. |