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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.06.2015, 14:31   #1
Oleg060783
 
Регистрация: 24.06.2015
Сообщений: 8
По умолчанию RichEdit: Загрузка из rtf-файла только текста

Добрый день.
Никак не могу разобраться(
Хочу из rtf-файла взять толь ко данные, без тегов.
Текст берётся вместе с тегами. Причём отображается не в красивом, отформатированном виде, а в виде :

Цитата:
{\rtf1\adeflang1025\ansi\ansicpg125 1\uc1\adeff1\deff0\stshfdbch0\stshf loch0\stshfhich0\stshfbi0\deflang10 49\deflangfe1049\themelang1049\them elangfe0\themelangcs0{\fonttbl{\f0\ fbidi \froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fbidi \fmodern\fcharset204\fprq1{\*\panos e 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\f bidi \fswiss\fcharset0\fprq2{\*\panose 020b0504020202020204}Helvetica;}
{\f5\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070409020205020404}Courier;}{\f6\ fbidi \froman\fcharset0\fprq2{\*\panose 02020603040505020304}Tms Rmn;}{\f7\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202030204}Helv;}
Делаю вот так:
Код:
procedure TfMain.DefoultFormat(Sender: TObject);
begin
	  if OpenDialog1.Execute then  //Вызываем диалог открытия
    begin
      RichEdit1.WordWrap:=False;
      RichEdit1.PlainText:=true; // текст без тегов
      RichEdit1.Enabled:=False;
      RichEdit1.Lines.BeginUpdate;
      RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); // загрузка
      RichEdit1.Lines.EndUpdate;
      RichEdit1.Enabled:=True;

      RichEdit1.Text; // всё-равно текст с тегами
    end;
end;
Спасибо заранее.

Последний раз редактировалось Stilet; 24.06.2015 в 15:24.
Oleg060783 вне форума
Старый 24.06.2015, 15:12   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

как то давно игрался. сейчас нет Delphi под рукой, чтобы проверить.

но попробуйте, что даст такой код:
Код:
begin
if OpenDialog1.Execute then //Вызываем диалог открытия
begin
  RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); // загрузка
  RichEdit1.PlainText:=true; 
  RichEdit1.Lines.SaveToFile(OpenDialog1.FileName+'.text');  
end;
end;
или так:

Код:
begin
if OpenDialog1.Execute then //Вызываем диалог открытия
begin
  RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); // загрузка
  RichEdit1.PlainText:=false; 
  Memo1.Lines.Text := RichEdit1.Text;  
end;
end;
p.s. я ничего не обещаю, возможно, что память меня подводит.
я помню, что там какие-то нюансы с PlainText были. а вот какие - уже не помню...

Последний раз редактировалось Serge_Bliznykov; 24.06.2015 в 15:16.
Serge_Bliznykov вне форума
Старый 24.06.2015, 15:53   #3
Oleg060783
 
Регистрация: 24.06.2015
Сообщений: 8
По умолчанию RichEdit: Загрузка из rtf-файла только текста

Спасибо за ответ.
Не работают оба варианта. Судя по форумам всё должно быть ок.
Где косяк....не пойму....
Oleg060783 вне форума
Старый 24.06.2015, 16:12   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
  Stream:=TMemoryStream.Create;
  RichEdit1.PlainText:=True;
  RichEdit1.Lines.SaveToStream(Stream);
  Stream.Position:=0;
  RichEdit1.Lines.LoadFromStream(Stream);
  Stream.Free;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 24.06.2015, 16:23   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Аватар, красиво! И это похоже на правду!
Проверили, всё работает как надо?
Serge_Bliznykov вне форума
Старый 24.06.2015, 20:44   #6
Oleg060783
 
Регистрация: 24.06.2015
Сообщений: 8
По умолчанию RichEdit: Загрузка из rtf-файла только текста

Вот мой код:

Код:
var
  Stream: TMemoryStream;
begin
	  if OpenDialog1.Execute then 
    begin
  RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
  Stream:=TMemoryStream.Create;
  RichEdit1.PlainText:=True;
  RichEdit1.Lines.SaveToStream(Stream);
  Stream.Position:=0;
  RichEdit1.Lines.LoadFromStream(Stream);
  Stream.Free;
    end;
end;
Содержание RichEdit:
Цитата:
{\rtf1\adeflang1025\ansi\ansicpg125 1\uc1\adeff1\deff0\stshfdbch0\stshf loch0\stsh fhich0\stshfbi0\deflang1049\deflang fe1049\themelang1049\themelangfe0\t hemelangcs 0{\fonttbl{\f0\fbidi \froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset204\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f2\fbidi \fmodern\fcharset204\fprq1{\*\panos e 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\f bidi \fswiss\fcharset0\fprq2{\*\panose 020b0504020202020204}Helvetica;}
Пробовал другой rtf-файл. Такая же байда.
Delphi5, компонент стандартный TRichEdit

Где же косяк...

Последний раз редактировалось Stilet; 24.06.2015 в 20:48.
Oleg060783 вне форума
Старый 24.06.2015, 20:51   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var
  f: TFileStream;
begin
  if OpenDialog1.Execute then     begin
   f:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
   RichEdit1.PlainText:=True;
   RichEdit1.Lines.LoadFromStream(f);
   f.Free;
  end;
end;
Не?
Цитата:
Delphi5
Поновее ниче поставить не хоч?
I'm learning to live...
Stilet вне форума
Старый 24.06.2015, 20:59   #8
Oleg060783
 
Регистрация: 24.06.2015
Сообщений: 8
По умолчанию RichEdit: Загрузка из rtf-файла только текста

Вы не поверите в чём было дело...
ScrollBar надо было вертикальный включить...
Глючный Delphi! 2 дня потерял.

Сейчас эксперементирую....Скорость загрузки очень маленькая.

Спасибо всем за участие!

PS: Поновее бы с удовольствием. Лицензия на работе только для этого есть.
Oleg060783 вне форума
Старый 24.06.2015, 23:18   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
PS: Поновее бы с удовольствием. Лицензия на работе только для этого есть.
это гдеж ты работаешь-то?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 24.06.2015, 23:30   #10
Oleg060783
 
Регистрация: 24.06.2015
Сообщений: 8
По умолчанию

На Сбербанк России)

Вы знаете, заработал след код:
Код:
procedure TfMain.DefoultFormat(Sender: TObject);
var
  Stream: TMemoryStream;
begin
            if OpenDialog1.Execute then
    begin
    RichEdit1.MaxLength := $7FFFFFF0;
    RichEdit1.PlainText:=false;
    RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);
    RichEdit1.PlainText:=True;
    end;
end;
Причём начал работать и предыдущий. И случилось это, если я не ошибся, после того как я включил ScrollBar.
Сначала включил оба скрулбара - текст был мелким шрифтом и смазан
Включил вертикальный скрулбар - небольшой rtf-документ начал отображаться как следует. Большой (4,5 мб) отображался с тегами, но повторный запуск процедуры отрабатывал быстро и выдавал уже без тегов
Потом отключил скрулбары - маленький документ отображается с первого раза корректно. Большой - со второго
Добавил строку RichEdit1.MaxLength := $7FFFFFF0; - большой документ отображается корректно с первого раза.

ЧТО за мистика???

Последний раз редактировалось Stilet; 25.06.2015 в 08:26.
Oleg060783 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка RTF файла в БД и отображение в RichTextBox pirat2k Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 12.04.2014 18:33
Загрузка файла rtf в BLOB поле pirat2k Помощь студентам 4 18.12.2013 12:03
загрузка текста из файла с форматированием nikmay Общие вопросы .NET 2 01.02.2012 18:49
Загрузка в Excel текста из .TIF файла Qwestor5 Microsoft Office Excel 2 19.01.2012 02:07
Загрузка в RichEdit текста из файла, и получение его из RichEdit Byurrer Общие вопросы C/C++ 1 09.04.2011 10:17