Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сохранение форматированного текста в FireBird

68K
16 марта 2011 года
kosan
5 / / 16.03.2011
Здравствуйте.

Есть такая задача: Необходимо скопировав текст в MS Word, вставить его в текстовое поле (предположительно RichEdit) в программе и нажва кнопку сделать запись в БД. После этого так же выводить этот текст из БД в форматированном виде.
Сейчас, текст вставляется в RichEdit в нормальном виде, со стилями, но в БД сохраняет простой текст. Как его нормально заставить работать и вообще можно ли?
Спасибо!
11
16 марта 2011 года
oxotnik333
2.9K / / 03.08.2007
Сохранять в бинарном виде в BLOB поле
277
16 марта 2011 года
arrjj
1.7K / / 26.01.2011
TStringStream stream
RichEdit->PlainText=false;
RichEdit->Lines->SaveToStream(stream);
String rtf=stream.DataString;
rtf сохраняешь в базу, из базы чтение RichEdit->Lines->LoadFromStream
//както так вроде.
68K
17 марта 2011 года
kosan
5 / / 16.03.2011
Ребята, спасибо за ответы, но он чет ошибку выдает

E2285 Could not find a match for 'TStringStream::TStringStream()'

А код в целом вот такой:

new TStringStream stream;

Memo1->PlainText=false;

Memo1->Lines->SaveToStream(stream);

String rtf=stream.DataString;
1
17 марта 2011 года
kot_
7.3K / / 20.01.2000
Цитата: kosan
Ребята, спасибо за ответы, но он чет ошибку выдает

E2285 Could not find a match for 'TStringStream::TStringStream()'


во первых для строкового потока нет конструктора по умолчанию, arrjj допустил ошибку в своем коде. Читай справку - там вполне нормально и подробно этот вопрос освещен. Как впрочем и на форуме - неиспользование поиска и игнорирование клавиши Ф1 тут наказывается.
Во вторых - использовать в подобном случае строковый поток (TStringStream) - это нарываться на неприятности. Необходимо использовать TMemoryStream - ведь насколько я понимаю необходимо сохранять и форматирование текста в том числе.
В третьих - используй средства форматирования кода - это касается всех участников. Небрежное оформление сообщений наказывается.

68K
18 марта 2011 года
kosan
5 / / 16.03.2011
Извиняюсь! Обещаю, что исправлюсь.
В общем чуток разобрался, но конечного результата еще не достиг. Как только добьюсь чего нужно, отпишу тут.
Спасибо.
68K
28 марта 2011 года
kosan
5 / / 16.03.2011
Скорее всего будете меня опять "ругать", но разобраться не удалось.
В общем вот уже совсем мизерный код:
 
Код:
TMemoryStream *mem = new  TMemoryStream();
RichEdit1->Lines->SaveToStream(mem);

взял его из примера. Но вот сразу выдает ошибку такую:
 
Код:
[C++ Error] Unit26.cpp(2284): E2451 Undefined symbol 'mem'

Почему 'mem' не определен, если он указан выше? Что-то не прописываю что ли или не так делаю?
Спасибо.
1
28 марта 2011 года
kot_
7.3K / / 20.01.2000
И что? Неужели это единственная ошибка которую выдает? Вероятно как минимум есть еще одна - о том что тип данных TMemoryStream не определен?
68K
28 марта 2011 года
kosan
5 / / 16.03.2011
Цитата: kot_
И что? Неужели это единственная ошибка которую выдает? Вероятно как минимум есть еще одна - о том что тип данных TMemoryStream не определен?



Не увидел такой.

Код:
[C++ Warning] Unit1.cpp(1052): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit1.cpp(1296): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit1.cpp(1305): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit1.cpp(1813): W8070 Function should return a value
[C++ Warning] Unit1.cpp(2122): W8004 'Today' is assigned a value that is never used
[C++ Warning] Unit9.cpp(46): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit9.cpp(830): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit9.cpp(1111): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit9.cpp(2130): W8004 'FB_ID1' is assigned a value that is never used
[C++ Warning] Unit26.cpp(6): W8058 Cannot create pre-compiled header: header incomplete
[C++ Warning] Unit26.cpp(2283): W8004 'mem' is assigned a value that is never used
[C++ Error] Unit26.cpp(2284): E2451 Undefined symbol 'mem'
[C++ Error] Unit26.cpp(2285): E2227 Extra parameter in call to _fastcall TStrings::LoadFromStream(TStream *)
[C++ Error] Unit26.cpp(2290): E2451 Undefined symbol 'kom_text_1'
[C++ Error] Unit26.cpp(2486): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2489): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2490): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2491): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2492): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2493): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2494): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2495): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2496): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2497): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2498): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2499): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2500): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2513): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2516): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2517): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2518): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2519): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2520): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2521): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2522): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2523): E2316 'Delete' is not a member of 'TDateTime'
[C++ Error] Unit26.cpp(2523): E2228 Too many error or warning messages
1
28 марта 2011 года
kot_
7.3K / / 20.01.2000
угу. Хорошая иллюстрация к тому, почему желательно устранять варнинги. Но впрочем речь не про то.
Проверяй код выше - скорей всего где-то допущена ошибка. Сам по себе этот фрагмент кода компилируется нормально.
очень вероятно что о проблеме свидетельствует
Цитата:
[C++ Warning] Unit26.cpp(6): W8058 Cannot create pre-compiled header: header incomplete


проверь настройки проекта, права доступа на дерикторию etc. Предупреждение свидетельствует о невозможности создать файл прекомпиляции - как бы может быть и ничего страшного - но хз.

11
28 марта 2011 года
oxotnik333
2.9K / / 03.08.2007
возможно что какой то хидер подключен в теле *.cpp тогда как надо его будет подключить в *.hpp
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог