Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 08.06.2019, 21:01   #1
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию Парсер/декодер структуры rtf

День добрый всем.
Может быть есть у кого нибудь готовый парсер/декодер структуры rtf файла?
По порядку:
1 имеем RichEdit1
2 пишем в нём например "Привет всем", и рядом вставляем смайл(bitmap16х16)вставляется нормально где каретка
3 сохраняем на диск в файл
4 открываем файл и видим структуру записи:
{\rtf1\ansi\ansicpg1251\deff0\defla ng1049{\fonttbl{\f0\fnil\fcharset20 4 Tahoma;}}
\viewkind4\uc1\pard\f0\fs20\'cf\'f0 \'e8\'e2\'e5\'f2 \'e2\'f1\'e5\'ec {\pict\wmetafile8\picw423\pich423\p icwgoal240\pichgoal240
010009000003b80100000000a2010000000 0050000000b0200000000050000000c02a7 01a701a2
010000430f2000cc0000001000100000000 000a701a701000000002800000010000000 10000000
010018000000000000030000c40e0000c40 e00000000000000000000ffffffffffffff ffffffff
ffd4edff6fc4ff27acff05a4ff0ba6ff2ba eff6fc4ffd3ecffffffffffffffffffffff ffffffff
fffffffff9fcff6bc3ff02a5ff37c7ff7ae 1ff92ebff92eaff7ae1ff34c6ff02a5ff67 c1fff6fb
fffffffffffffffffffff9fcff44b4ff00b 1ff5ddfff61b1d9355bd47464ff7464ff35 5bd463b3
db59deff00b1ff43b3fff9fcfffffffffff fff6ac1ff00b1ff24d6ff3786b900499284 6bffcaab
ffcaabff846bff0047913c8bbe1ed6ff00b 1ff6ac1ffffffffd3ebff03a2ff00c7ff4d b0dc0044
8b004a920b28e10b28e10b28e10b28e1004 a9200448b4cb3de00c7ff03a2ffd3ebff70 c1ff00af
ff00cbff1e689e003d7a003e7b003e7b003 e7b003e7b003e7b003e7b003d7a216ba100 cbff00af
ff6fc1ff28a6ff00bbff00c8ff003069002 85f00285f00285f00285f00285f00285f00 285f0028
5f00387100c8ff00bbff2ba7ff069aff00c 2ff00c6ff00c6ff00c6ff00c6ff00c6ff00 c6ff00c6
ff00c6ff00c6ff00c6ff00c6ff00c6ff00c 1ff0c9bff0698ff00c0ff46bdf165a0c46e 98b8609f
c423b7f300c6ff00c6ff25b6f2629fc46e9 8b865a0c546bdf100bfff0698ff28a2ff1b adf396b1
c4c6ced1e0dfd8c6ced197b1c55fc3ef61c 4ee98b1c5c7cfd2e0dfd8c6ced196b1c41b adf328a2
ff70beff5c9ccbd1dce1f1f1edf1f1edf1f 1edd2dce171a7cb71a7cad3dde2f1f1edf1 f1edf1f1
edd1dbe25c9ccb70beffd4eaff6c9dc2fbf cfbfefefdfefefd000000fbfcfb6f9fc36f 9ec2fcfc
fc000000fefefdfefefdfafbfb6b9dc3d4e affffffff6ca3d1dae7f0ffffffffffffff ffffdbe8
f178adcf77adcfdde9f1fffffffffffffff fffd9e7f06ca4d2ffffffffffffcadded9e c0dbdbe8
f1fcfdfddbe8f1a0c0dba2d6f0a1d5efa1c 1dcdce9f2fcfdfddae7f29ebfdacbdeedff ffffffff
ffffffff206baa3883be639ecb67a8d78ac af3bcedffbcecff89c9f467a7d6639dcb38 83bd216b
aaffffffffffffffffffffffffc0d3e5407 bb2004f99105eaa2494ff0790ff0790ff23 92ff0c5b
a5004f99437db3c1d4e6ffffffffffff030 000000000
}\par
}

\'cf\'f0\'e8\'e2\'e5\'f2 \'e2\'f1\'e5\'ec это наш текст "Привет всем"

ffffffffffffffffffffff
ffd4edff6fc4ff27acff05a4ff0ba6ff2ba eff6fc4ffd3ecffffffffffffffffffffff ffffffff
fffffffff9fcff6bc3ff02a5ff37c7ff7ae 1ff92ebff92eaff7ae1ff34c6ff02a5ff67 c1fff6fb
fffffffffffffffffffff9fcff44b4ff00b 1ff5ddfff61b1d9355bd47464ff7464ff35 5bd463b3
db59deff00b1ff43b3fff9fcfffffffffff fff6ac1ff00b1ff24d6ff3786b900499284 6bffcaab
ffcaabff846bff0047913c8bbe1ed6ff00b 1ff6ac1ffffffffd3ebff03a2ff00c7ff4d b0dc0044
8b004a920b28e10b28e10b28e10b28e1004 a9200448b4cb3de00c7ff03a2ffd3ebff70 c1ff00af
ff00cbff1e689e003d7a003e7b003e7b003 e7b003e7b003e7b003e7b003d7a216ba100 cbff00af
ff6fc1ff28a6ff00bbff00c8ff003069002 85f00285f00285f00285f00285f00285f00 285f0028
5f00387100c8ff00bbff2ba7ff069aff00c 2ff00c6ff00c6ff00c6ff00c6ff00c6ff00 c6ff00c6
ff00c6ff00c6ff00c6ff00c6ff00c6ff00c 1ff0c9bff0698ff00c0ff46bdf165a0c46e 98b8609f
c423b7f300c6ff00c6ff25b6f2629fc46e9 8b865a0c546bdf100bfff0698ff28a2ff1b adf396b1
c4c6ced1e0dfd8c6ced197b1c55fc3ef61c 4ee98b1c5c7cfd2e0dfd8c6ced196b1c41b adf328a2
ff70beff5c9ccbd1dce1f1f1edf1f1edf1f 1edd2dce171a7cb71a7cad3dde2f1f1edf1 f1edf1f1
edd1dbe25c9ccb70beffd4eaff6c9dc2fbf cfbfefefdfefefd000000fbfcfb6f9fc36f 9ec2fcfc
fc000000fefefdfefefdfafbfb6b9dc3d4e affffffff6ca3d1dae7f0ffffffffffffff ffffdbe8
f178adcf77adcfdde9f1fffffffffffffff fffd9e7f06ca4d2ffffffffffffcadded9e c0dbdbe8
f1fcfdfddbe8f1a0c0dba2d6f0a1d5efa1c 1dcdce9f2fcfdfddae7f29ebfdacbdeedff ffffffff
ffffffff206baa3883be639ecb67a8d78ac af3bcedffbcecff89c9f467a7d6639dcb38 83bd216b
aaffffffffffffffffffffffffc0d3e5407 bb2004f99105eaa2494ff0790ff0790ff23 92ff0c5b
a5004f99437db3c1d4e6ffffffffffff это hex нашего смайла (получение битмапа из его hex-кода я написал)

Последний раз редактировалось Svema; 08.06.2019 в 21:06.
Svema вне форума Ответить с цитированием
Старый 08.06.2019, 21:18   #2
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

может есть готовый у кого нибудь?
или самому всё же лопатить всю клавиатуру (латиницу, кирилицу, символы)
Svema вне форума Ответить с цитированием
Старый 08.06.2019, 21:32   #3
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

был бы исходник WordPad, можно было бы вытянуть оттуда алгоритм считывания, но даже не знаю есть ли он в открытом доступе.
Svema вне форума Ответить с цитированием
Старый 08.06.2019, 21:39   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,712
По умолчанию

Цитата:
Сообщение от Svema Посмотреть сообщение
готовый парсер/декодер структуры rtf файла
А, зачем он Вам? Кстати, уже давным-давно есть море готовых библиотек и компонентов для работы с RTF. Чем они Вам не нравятся?
Streletz вне форума Ответить с цитированием
Старый 08.06.2019, 21:43   #5
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

в каком например из этого "моря" есть т, что нужно?
Svema вне форума Ответить с цитированием
Старый 08.06.2019, 21:54   #6
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

нужно из того что мы напечатали в RichEdit(или другом подобном) получить текст(юникод) вместе с смайлами, там где они стоят
потом этот текст отправляем одним из методов VKApi
Svema вне форума Ответить с цитированием
Старый 08.06.2019, 21:59   #7
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

Мoжно сразу всё это дело печатать в Memo, выбирать из диалога смайлы, вставлять куда надо в Memo, но это всё выглядит убого/некрасиво и непонятно толком, что за смайл стоит
Svema вне форума Ответить с цитированием
Старый 08.06.2019, 23:57   #8
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

Ладно, решил сам написать
спарсил текст \'cf\'f0\'e8\'e2\'e5\'f2 \'e2\'f1\'e5\'ec получил cff0e8e2e5f220e2f1e5ec
проверяю через онлайн шифровщик-разшифровщик получаю то что надо Привет всем
пробую тоже самое на делфи(у мeня xe5) и тут же грабли:


function HexToStr(const source: string): string;
var
i, idx:Cardinal;
StrAsBytes:TBytes;
begin
SetLength(StrAsBytes, length(source) div 2);
i:=1;
idx:=0;
while i<=length(source) do
begin
StrAsBytes[idx]:=StrToInt('$'+source[i]+source[i+1]);
i:=i+2;
idx:=idx+1;
end;
result:=TEncoding.UTF8.GetString(St rAsBytes);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
begin
s:= HexToStr('cff0e8e2e5f220e2f1e5ec');
ShowMessage(s);
end;

переменная пустая
прошу помощи...
Svema вне форума Ответить с цитированием
Старый 09.06.2019, 06:34   #9
Svema
Пользователь
 
Регистрация: 09.10.2017
Сообщений: 23
По умолчанию

Вопрос полностью решён
Во всём разобрался
Всего хорошего всем))
Svema вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Декодер Витерби Programmer0 Помощь студентам 7 16.05.2019 17:52
хафман, декодер (есть код) freekyn Помощь студентам 1 17.05.2017 14:37
Сверточный кодер-декодер ViperYa Помощь студентам 0 12.04.2012 00:13
Кодер-Декодер Katus Паскаль, Turbo Pascal, PascalABC.NET 2 18.02.2012 03:21
Морзе декодер(с++) jambas92 Помощь студентам 3 14.11.2010 12:32