![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| pushok |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Здравствуйте.
Пытаюсь в один файл (поток TFileStream) запихнуть информацию разного рода. Для начала запихнул строку и число - получилось. Далее попытался добавить картинку, но здесь у меня возникла проблема: мне в программе надо в переменной (или в объекте, наверное лучше будет сделать объект) иметь текстовые, числовые данные, а также изображения. Строки и числа будут статическими переменными и здесь проблем не возникает. Пытался сохранять из компонентов (использовал TImage): оказалось там есть TBitmap и TGraphic и, как я понимаю, отображается один из двух. 1. Что мне нужно использовать?? 2. Какой из них сможет хранить и загружать изображения разного формата? 3. А главное как их сохранять? Правильно ли я пытаюсь сохранить?
Ситуация такая: загружаю картинку в Image1. Сохраняю в файл (при этом выводя сообщение о размере потока fs2 при сохранении получаю какое-то не нулевое число). После сохранения изображение из Image 1 исчезает. Пытаюсь открыть: число и строка считываются нормально, ошибок не появляется, но и в Image1 также ничего не появляется... Ничего не понятно. 4. И еще вопрос. Если в последствии мне понадобиться сохранять и отображать форматированный текст (например формат .doc). Это реально? Как мне его хранить (TStringList вроде не подходит) ? Какие компоненты использовать для отображения? Заранее благодарю за прояснение обстановки = ) |
|||
|
||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 5 Всего: 112 |
Попробуйте использовать временный буфер для чтения из одного потока в другой.
Добавлено через 2 минуты и 48 секунд А, еще. В процедуре сохранения можно заменить на
Все равно копируете всё содержимое. |
||||
|
|||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
А если создать запись Record с разными полями и сохранять её в поток?
|
|||
|
||||
| Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Добавлено через 45 секунд
|
||||
|
|||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 5 Всего: 112 |
Akella, а картянка (TBitmap) и строка (string) — это же указатели по сути. Так что, вроде, все равно придется каждое поле структуры по отдельности вписывать, чтобы сохранить в файл. Нет?
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
А может лучше использовать базу данных? Можно использовать таблицы в памяти и т.д.
|
|||
|
||||
| pushok |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Подумал, вот такие объекты написал:
* прийду домой вечером - буду загрузку делать Вопрос следующий: TQuestion стоит ли делать объектом или сделать его записью лучше? |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Тааааааааакс, слушай-ка, TQuestion. Я так понял задача у тебя такая: Создать программу по созданию тестов, причем тесты у пользователя должна быть возможность создавать, также этот созданный тест должна быть возможность пройти. Причем в вопросах и ответах необходимо добавить возможность задания картинок. В общем, если это так то у меня есть готовое решение. ТАм в файл пишется все, вопросы, ответы, картинки если необходимо, также теория в формате Word. Если что, попробую поднять исходники.
Единственный там минус (который ты возможно устранишь) - там долго идет загрузка. Но долго она идет потому что мне лень было думать как считать размер последнего загружаемого буфера, поэтому подгрузка из файла идет в буфер размером в 1 байт |
|||
|
||||
| pushok |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Буду рад посмотреть твои коды = ))
Надеюсь разберусь... |
|||
|
||||
| pushok |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Написал, вот что у меня получилось (в коде оставил только, то, что нужно оценить) (пояснения ниже):
Решил сделать тест объектом, т.к. он должен иметь процедуры открытия (создания) и уничтожения. Остальное решил сделать записями, т.к. все объекты (включенные в записи) будут создаваться в процедуре загрузки теста. Процедура загрузки теста (LoadTest1) написана как инициализация (без самой загрузки из файла), но планирую её сделать по образу LoadTest1. Вопросы: 1. Есть какие-нибудь недочеты? 2. Если в вопросе картинки не подразумевается, то я её (объект img) не создаю, чтобы не занимать лишнюю память. При удалении объектов я её всеравно удаляю. Не возникнет ли проблемных ситуаций с этим? (проверял - ошибок не появлялось). Если лучше не удалять, то что не создавал, то как проверить создавал ли я её? Это сообщение отредактировал(а) pushok - 31.7.2010, 10:30 |
|||
|
||||
| pushok |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
И еще возникла проблема...
Написал функции отбора вопросов. При первом вызове всегда все в порядке. Но при последующих может возникнуть ошибка (EInvalidPointer) при этом может возникнуть, а может и не возникнуть...странное дело. Из программы я не выхожу, а просто вызываю повторно функции. Использую динамические массивы. Я так понимаю это из-за них, но дело в том, что они у меня всегда одинаковой длины. На это стоит обращать внимание? |
|||
|
||||
| azion |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.7.2010 Репутация: нет Всего: нет |
привет ребята если на трудно выложите полный исходник
интересно как все выглядит |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |