Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2013, 21:53   #1
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию Можно ли вывести rtf в RichEdit из бд access

Ребят, есть текст в формате rtf в access в поле memo. Можно ли вывести этот текст с сохранением форматирования в RichEdit. Я экспериментировал, выводит только хтмл код(( Если это можно реализовать, подскажите, пожалуйста...
belkeandrey вне форума Ответить с цитированием
Старый 07.05.2013, 22:04   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
выводит только хтмл код
это как ?
eval вне форума Ответить с цитированием
Старый 07.05.2013, 22:12   #3
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Ну, например на запрос

RichEdit1.Lines.Text:=DM.ADOContent .Fields.Fields[1].AsString;

в ричэдите выводится хтмл код моего форматированного текста:

"<blockquote>

<blockquote>

<div align=center><font face="Times New Roman" size=4 color=black><strong>Назначение</strong></font></div>

<div><font face="Times New Roman" size=4 color=blue>Тренажер 9Ф68М1-6</font><font
face="Times New Roman" size=4 color=black> является унифицированным тренажером и предназначен для обучения навыкам боевой работы наводчиков и командиров </font><font
face="Times New Roman" size=4 color=blue>танка Т-72Б1</font><font
face="Times New Roman" size=4 color=black>.</font></div>

<div><font face="Times New Roman" size=4 color=black>Обучение и тренировка на тренажере производятся по реальным и имитированным, неподвижным и движущимся наземным целям, а также по воздушным целям, расположенным на различных дальностях, движущимся с различными скоростями и выполняющими определенные маневры.</font></div>

<div><font face="Times New Roman" size=4 color=black>Конструкция тренажера обеспечивает контроль инструктором за работой наводчика и командира с помощью мониторов.</font></div>

</blockquote>

</blockquote>

<div><font face="Times New Roman" size=4 color=black>Аппаратура тренажера установлена в стандартном крытом </font><font
face="Times New Roman" size=4 color=blue>кузове-контейнере КК 4.2.31.1.</font></div>"
belkeandrey вне форума Ответить с цитированием
Старый 07.05.2013, 22:37   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Это и есть текст в rtf-формате. А так
Код:
var xStream: TMemoryStream;

  xStream:=TMemoryStream.Create;
  TBlobField(ADOQuery1.FieldByName('MyMemo')).SaveToStream(xStream);
  xStream.Position:=0;
  RichEdit1.Lines.LoadFromStream(xStream);
  xStream.Free;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.05.2013, 23:24   #5
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Ругается на TBlobField, что недекларированная переменная...
belkeandrey вне форума Ответить с цитированием
Старый 08.05.2013, 00:26   #6
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Коллеги, выручайте, файлов очень много, прописывать к каждому путь программно с ума сойдешь... Как можно реализовать вывод форматированного текста из бд?
belkeandrey вне форума Ответить с цитированием
Старый 08.05.2013, 00:33   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

TBlobField не переменная, а наследник класса TField из юнита DB. На будущее - выделяешь и F1, там все есть или гугл. А плакаться по каждому чиху не выход из положения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.05.2013, 01:19   #8
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
TBlobField не переменная, а наследник класса TField из юнита DB. На будущее - выделяешь и F1, там все есть или гугл. А плакаться по каждому чиху не выход из положения
я понимаю что это не переменная, а дельфи пишет что недекларированная переменная. нигде не найду что с этим делать. у меня бд запороленная и по умолчанию все коннекты стоят в false, а true ставится программно. мб из-за этого?
belkeandrey вне форума Ответить с цитированием
Старый 08.05.2013, 01:26   #9
belkeandrey
Пользователь
 
Регистрация: 21.02.2013
Сообщений: 48
По умолчанию

Разобрался... В RichEdit выводит то же самое, хтмл код(( Есть еще варианты?
belkeandrey вне форума Ответить с цитированием
Старый 08.05.2013, 07:48   #10
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Варианты:
- применить HTML парсер для вывода текста без тегов;
- может быть надо вместо RichEdit использовать TWebBrowser?

Понятно, что в RichEdit текст форматов RTF и HTML будут выводится по-разному.
RichEdit принимает и парсит файлы РЕАЛЬНОГО rtf формата, а HTML разметку он не понимает (в D7 точно).

----
Испытания TWebBrowser вместо RichEdit принесли некоторые плоды. Показывает без тегов и с каким надо форматированием.
Код:
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  SL.Clear;
  SL.Text := ADOQuery1['html'];
  SL.Insert(0, '<html><body>');
  SL.SaveToFile('00.hml');
  SL.Add('</body></html>');
  WebBrowser1.Navigate(ExtractFilePath(ParamStr(0))+'00.hml');
end;
Здесь SL : TStringList, который создается при запуске программы (чтобы не терять время на его создания при навигации
по гриде). Смотрится несколько тяжеловесно, но работает шустро.
'html' - наименование поля в таблице БД, где хранится текст.

Последний раз редактировалось Прик; 08.05.2013 в 08:49.
Прик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем вывести RTF-содержимое задачи Outlook? WarHamster C# (си шарп) 0 18.07.2012 10:09
как сделать чтоб из richedit можно было сохранять txt и rtf на выбор??? betirsolt Общие вопросы Delphi 10 22.05.2011 23:22
RTF содержимое ячейки таблицы MS Word в Буфер обмена или в RichEdit OlegVE Microsoft Office Word 4 25.11.2010 12:54
При открытие в OpenDialog .doc-вский файл должен отображаться в RichEdit. doc to rtf Lemon Компоненты Delphi 9 07.06.2007 19:19
RichEdit. как можно вставлять картинку туда? как можно Скрол програмно вниз двигать? Svop Компоненты Delphi 7 28.11.2006 21:07