Как и для конференций, при загрузке большого списка докладов нецелесообразно загружать их целиком, достаточно заголовков. Текст же можно загрузить после того, как доклад будет выбран. Снова нужны два метода LoadHdr и LoadBody.
Для загрузки доклада мало знать имя файла, необходимо указать расположение доклада в файле. Для этого нужно определить или признак начала конкретного доклада или смещение до текста доклада в файле. Смещение более эффективно и занимает мало места, в классе TTalk следует отвести место под смещение.
В какой момент смещение станет известно? Пусть методы загрузки возвращают смещение в файле, на котором завершился очередной фрагмент. Это смещение будет указывать или на конец файла или на начало следующего доклада и его можно будет использовать для продолжения загрузки. Значит методы LoadHdr и LoadBody должны возвращать значения длинных целых, которыми задается смещение в файле.
Неприятность состоит в том, что открытие и закрытие файла — длительная процедура, и ее многократное повторение при загрузке всей конференции потребует много ресурсов сети и компьютера. Можно предложить следующий выход. Передавать в методы LoadHdr и LoadBody указатель на поток как параметр, а сам поток открывать и закрывать до вызова метода. Это же касается и метода Store.
Наконец, текст доклада может не загружаться из файла, а создаваться во время работы программы пользователем. Если текст представлять как список строк и выбрать для его хранения класс TStringList, то задачу создания и редактирования текста на данном этапе можно считать решенной.
Опубликовал Kest
October 07 2011 10:27:29 ·
0 Комментариев ·
3188 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.