Показать сообщение отдельно
  #2  
Старый 05.07.2010, 23:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ошибка в прокладке.
Вообще, обычно считывается в память весь файл и уже в памяти происходит работа. Правда, если файл большой (действительно большой), то приходится читать его по мере необходимости. Но не думаю, что при такой структуре у тебя будет большой файл.

Варианты что и как делать.
1. Если ты можешь ограичиться длинной вопроса/ответа/информации в 255 символов каждый, то просто поставь длинну строк в записи и делай через File Of. В этом случае у тебя будет возможность а) пользоваться seek, б) читать за одну операцию сразу всю запись.
2. Читай весь файл, например, в TStringList. Далее можно сделать через формулу расчета смещения в списке строк. Пусть N - номер вопроса. Тогда номер вопроса будет на строке N*8, текст вопроса будет на строке (N*8)+1 и т.д.
3. Переходить на TFileStream со всеми вытекающими...
Ответить с цитированием