Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329

LoadFromFile и SaveToFile компонента TRichEdit - не все файлы читаются корректно

20.08.2014, 12:48. Показов 1365. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой данных методов.
На некоторых текстах в формате rtf LoadFromFile глючит, и текст получается "сырым".
К примеру, после использования кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  
  TRichEdit *txt;
  txt = new TRichEdit(fMain);
  txt->Parent = fMain;
  txt->Visible = false;
  txt->WordWrap = false;
  txt->PlainText = false;
...
  if (FileExists(nf)) {
    txt->Lines->LoadFromFile(nf);
    txt->Lines->SaveToFile(nf+".rtf");
    return true;
  } else {
    return false;
  }
в исходном файле (нормально открывающимся текстовым редактором) текст в виде
Кликните здесь для просмотра всего текста
{\rtf1\ansi\ansicpg1251\deff0\deflang104 9{\fonttbl{\f0\fnil\fcharset204 Tahoma;}{\f1\fnil\fcharset0 Tahoma;}}
\viewkind4\uc1\pard\f0\fs16\par
\'ca\'ed\'e8\'e6\'ed\'ee\'e5 \'e1\'f0\'e0\'f2\'f1\'f2\'e2\'ee\par
\'d6\'e0\'f0\'f1\'ea\'e0\'ff \'e4\'fb\'e1\'e0 (fb2) - [= \'c3\'ee\'f1\'f3\'e4\'e0\'f0\'e5\'e2\'e0 \'e4\'fb\'e1\'e0] ( - 4) 557K \'f1\'ea\'e0\'f7\'e0\'f2\'fc: - - -\par
\'c0\'eb\'e5\'ea\'f1\'e0\'ed\'e4\'f0 \'cf\'f0\'ee\'e7\'ee\'f0\'ee\'e2\par
\'d6\'e0\'f0\'f1\'ea\'e0\'ff \'e4\'fb\'e1\'e0 [=\f1\~\f0\'c3\'ee\'f1\'f3\'e4\'e0\'f0\'e 5\'e2\'e0\f1\~\f0\'e4\'fb\'e1\'e0]\par
(\'c1\'ee\'ff\'f0\'f1\'ea\'e0\'ff \'f1\'ee\'f2\'ed\'ff #4)\par
\'d7\'e0\'f1\'f2\'fc \'ef\'e5\'f0\'e2\'e0\'ff. \'c4\'e8\'ea\'e8\'e5 \'e7\'e5\'ec\'eb\'e8\par
\'c3\'eb\'e0\'e2\'e0 1. \'ce\'e1\'ee\'e7\par

А после пересохранения
Кликните здесь для просмотра всего текста
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcha rset204 Tahoma;}}
\viewkind4\uc1\pard\lang1049\f0\fs16\{\\ rtf1\\ansi\\ansicpg1251\\deff0\\deflang1 049\{\\fonttbl\{\\f0\\fnil\\fcharset204 Tahoma;\}\{\\f1\\fnil\\fcharset0 Tahoma;\}\}\par
\\viewkind4\\uc1\\pard\\f0\\fs16\\par\pa r
\\'ca\\'ed\\'e8\\'e6\\'ed\\'ee\\'e5 \\'e1\\'f0\\'e0\\'f2\\'f1\\'f2\\'e2\\'ee \\par\par
\\'d6\\'e0\\'f0\\'f1\\'ea\\'e0\\'ff \\'e4\\'fb\\'e1\\'e0 (fb2) - [= \\'c3\\'ee\\'f1\\'f3\\'e4\\'e0\\'f0\\'e5 \\'e2\\'e0 \\'e4\\'fb\\'e1\\'e0] ( - 4) 557K \\'f1\\'ea\\'e0\\'f7\\'e0\\'f2\\'fc: - - -\\par\par
\\'c0\\'eb\\'e5\\'ea\\'f1\\'e0\\'ed\\'e4 \\'f0 \\'cf\\'f0\\'ee\\'e7\\'ee\\'f0\\'ee\\'e2 \\par\par
\\'d6\\'e0\\'f0\\'f1\\'ea\\'e0\\'ff \\'e4\\'fb\\'e1\\'e0 [=\\f1\\~\\f0\\'c3\\'ee\\'f1\\'f3\\'e4\\' e0\\'f0\\'e5\\'e2\\'e0\\f1\\~\\f0\\'e4\\ 'fb\\'e1\\'e0]\\par\par
(\\'c1\\'ee\\'ff\\'f0\\'f1\\'ea\\'e0\\'f f \\'f1\\'ee\\'f2\\'ed\\'ff #4)\\par\par
\\'d7\\'e0\\'f1\\'f2\\'fc \\'ef\\'e5\\'f0\\'e2\\'e0\\'ff. \\'c4\\'e8\\'ea\\'e8\\'e5 \\'e7\\'e5\\'ec\\'eb\\'e8\\par\par
\\'c3\\'eb\\'e0\\'e2\\'e0 1. \\'ce\\'e1\\'ee\\'e7\\par\par

То бишь по ходу LoadFromFile не может корректно прочесть файл.
Такое происходит не со всеми файлами, только с некоторыми.
Кто нить сталкивался?
зы. Исходный файл 1.7 МБ, надо ли прикладывать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.08.2014, 12:48
Ответы с готовыми решениями:

SaveToFile & LoadFromFile
использую в своей программе метод SaveToFile и LoadFromFile и провожу эти манипуляции с файлами на удаленной машине в сети...

TreeView.LoadFromFile/SaveToFile
Значит проблема такая: Делаем раз TreeView1.SaveToFile('tree.dat'); полученный файлик открывается и все там нормально... А при...

LoadFromFile&SaveToFile
Нужна в программе регистрация и авторизация через файл(не базу данных), обычный файл txt. Регистрация уже готова. AnsiString file; ...

4
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
20.08.2014, 12:54
krv, стандартный WordPad открывает и сохраняет этот файл нормально?
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
20.08.2014, 13:02  [ТС]
quwy, да, WordPad и LibreOffice открывают исходный файл нормально.

Когда сохраняют, он меняется - либра пишет вообще в UTF16 зачем-то, WordPad тоже немного меняет текст

Пересохраненный ВордПадом текст тоже не корректно вычитывается.
Щас попробую с размером самого текста поиграться....
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
20.08.2014, 13:05
Использовал такую связку
C++
1
2
3
4
5
TStringList *SL=new TStringList;
SL->Text=RichEdit1->Text;
RichEdit1->Lines->SaveToFile("C:\\3.txt");
SL->SaveToFile("C:\\4.txt");
delete SL;
Файл 3.txt криво записался
Файл 4.txt полностью идентичен исходному Вашему файлу

Пользуйтесь StringList для сохранения текста.

Хотя только сейчас обратил внимание на расширение .RTF...и при такой же связке сохраняя в .RTF все иначе.
Файл 3.RTF полностью идентичен исходному Вашему файлу
Файл 4.RTF криво записался
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
20.08.2014, 13:23  [ТС]
Уменьшил исходный файл примерно до 400к, проблема ушла.
Но может я проблемный кусок удалил.. не понятно.

Я rtf использую из-за того, что мне надо хранить в нем так же и цвет текста.
Поэтому TStringList не подходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.08.2014, 13:23
Помогаю со студенческими работами здесь

Не все файлы читаются с SD карты
Здравствуйте! Читаю содержимое SD карты. При первом запуске вижу все файлы, находящиеся на карте. После второй попытки - только часть...

Файлы на USB флеш не читаются(читаются частично)
USB флеш накопитель 32Gb Transcend JetFlash 500 Black (TS32GJF500) Скидываю на флешку файлы,сразу же проверяю,все нормально файлы на...

Печать из компонента TRichEdit
Здравствуйте! Написал текстовый редактор с компонентов RichEdit. Теперь мне надо из этого компонента RichEdit распечатать изменённый текст...

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

Разработать приложение "Текстовый редактор" на базе компонента TRichEdit
Постановка задачи Разработать приложение "Текстовый редактор" на базе компонента TRichEdit. Порядок выполнения работы. 1. Дана...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru