|
|
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Ну и чудненько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2020, 00:35 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
DarkMaster Что-то вы какое-то тяжелое решение рассматриваете. HTML <sub>....</sub>, <sup>....</sup> спасут отца русской демократии. Хранить в varchar поле, показывать стандартным WebBrowser (ну или HTMLViewer`ом). Собственно, несколькими постами выше твоего я именно это и предложил. RTF, кстати, вовсе не бинарный формат, и EM_SETTEXTEX никто не отменял (это к вопросу о стримах и блобах) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2020, 01:51 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Kos-2010 нашел какую-то " HTML Display Components " - посмотрим... Там оно мёртвое. Вот оно живое: https://github.com/BerndGabriel/HtmlViewer Воспользовался компонентом HtmlViewer . В общем-то получилось довольно не плохо ( рис.1 ), учитывая что в базе будет хранится строка ( рис.3 ).+ввод всяких бета и, альфа и т.д. Затея такая, чтобы пользователь видел только окна рис.1 и рис.2 (без тегов). В окне рис.2 он редактирует запись. В окне рис.1 он ее смотрит как получилось. А кнопки " Верх.инд. " и " Нижн.инд. " вместе с окном рис.2 фирмируют строку в окне рис.3 ( с тегами ), т.е. п нажатию кнопок вставляются теги верхнего и нжнего индекса. Только вопрос, как легче формировать текст в окне 3? В лоб, т.е. вводишь текст, потом нажимаешь например " верхн.инд " и открывается " <sup> ", отжимаешь кнопку и вставляется " </sup> " ну и т.д. или есть более легкий вариант? Я пока не рассматриваю вариант, чтоб в окне 2, были видны теги, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 02:17 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 03:11 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
1. Если это касается базы данных ( FireBird 3 ), то в таком случае мне нужно хранить текст " RTF " в каком-либо другом поле. и подгружать его в RichEdit при выборе каждой строки - правильно? 2. Я вывожу данные базы в MS Word , (ну как обычно через " CreateOleObject('Word.Application'); "). Вопрос: у меня получится в данном случае вывести данные корректно, т.е. с индексами? P.S. просто при использовании HtmlViewer1 Код: pascal 1. выводе в MS Word , индексы в MS Word превратились в обычные (т.е. нормального размера). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 10:29 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kos-2010 1. Если это касается базы данных ( FireBird 3 ), то в таком случае мне нужно хранить текст " RTF " в каком-либо другом поле. и подгружать его в RichEdit при выборе каждой строки - правильно? 2. Я вывожу данные базы в MS Word , (ну как обычно через " CreateOleObject('Word.Application'); "). Вопрос: у меня получится в данном случае вывести данные корректно, т.е. с индексами? P.S. просто при использовании HtmlViewer1 Код: pascal 1. выводе в MS Word , индексы в MS Word превратились в обычные (т.е. нормального размера). 1. Хранение RTF ничем не отличается от хранения HTML. Внезапно, это тоже текстовый формат. 2. С richedit как раз не должно быть проблем 3. Значит, HtmlViewer копирует только текст либо не доработан. Но это поправимо, проект более-менее живой, можно попросить добавить фичу или попробовать самому исправить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 10:43 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal ... 3. Значит, HtmlViewer копирует только текст либо не доработан. Но это поправимо, проект более-менее живой, можно попросить добавить фичу или попробовать самому исправить скорее всего что-то у меня не правильно работает. (несколько лет пользовался одним и тем же кодом, проблем не было. кстатити с unicode верхних и нижних индексов тоже проблем нет). при обычном копировании " CTRL-C " " CTRL-V " из HtmlViewer (в запущенной программе) в MS Word - все замечательно переносится (я имею в виду размер индексов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 10:59 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Всё бы ничего, но дельфовый RichEdit уже научился в \urtf или до сих пор каждую не ASCII букву кодирует как #XXXX; ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 12:09 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
alekcvp, А не всё ли равно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 12:45 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kos-2010 скорее всего что-то у меня не правильно работает. (несколько лет пользовался одним и тем же кодом, проблем не было. кстатити с unicode верхних и нижних индексов тоже проблем нет). при обычном копировании " CTRL-C " " CTRL-V " из HtmlViewer (в запущенной программе) в MS Word - все замечательно переносится (я имею в виду размер индексов) Там всего две процедуры - CopyToClipboardAsText и CopyToClipboardAsHtml. И они просто загоняют текстовое представление с соответствующим типом данных в буфере обмена. Возможно, в твоем случае почему-то вызвался CopyToClipboardAsText ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 13:31 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Там всего две процедуры - CopyToClipboardAsText и CopyToClipboardAsHtml. И они просто загоняют текстовое представление с соответствующим типом данных в буфере обмена. Возможно, в твоем случае почему-то вызвался CopyToClipboardAsText Я имел в виду компонент HtmlViewer , там всего одна CopyToClipboard ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 14:35 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kos-2010 там всего одна CopyToClipboard Этот метод копирует в буфер сразу в двух форматах: в plaintext и html. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 14:50 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 14:55 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey alekcvp, А не всё ли равно? Зависит от. Представь что у тебя в базе Firebird поле Varchar UTF8, а ты туда хочешь RTF загнать. У тебя в базе на 1 символ 4 байта уходит, ещё в RTF 5 - итого 20 байт на один символ, не дохрена ли?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 15:16 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
alekcvp У тебя в базе на 1 символ 4 байта уходит, С чего 4, если там UTF-8? Один байт на ascii символ там будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 15:26 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
04.12.2020 15:16, alekcvp пишет: > У тебя в базе на 1 символ 4 байта уходит в общем случае это не так. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 15:27 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
alekcvpУ тебя в базе на 1 символ 4 байта уходит, ещё в RTF 5 - итого 20 байт на один символ utf8 по факту не 4 а 3 байта, причем не 3, а "от одного до трех", т.к. формат плавающий. И, в rtf не может быть 5 байт на символ. По крайней мере я в это не верю. с rtf другая проблема - там много лишней фигни, и слово "абракадабра" сохраненное в rtf дает файл размером 31 килобайт, с перечислением всяких шрифтов и прочей мутотой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 21:39 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
kdv с rtf другая проблема - там много лишней фигни, и слово "абракадабра" сохраненное в rtf дает файл размером 31 килобайт, с перечислением всяких шрифтов и прочей мутотой. Код: plaintext 1. 2. 210 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 22:00 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey'e0\'e1\ в этом смысле - да, был неправ, согласен, это не бинарный формат. С другой стороны, нифига же не "5 байт на символ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 22:04 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
kdv С другой стороны, нифига же не "5 байт на символ". Всё за пределами ASCII ескейпится. Там может быть и больше 5 байтов на символ. Латиница по одному байту. Текст>>ASCII<< >>中文<< >>абракадабра<< RTF: Код: plaintext 1. 2. 3. 4. 306 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 22:26 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
kdv С другой стороны, нифига же не "5 байт на символ". Да, ошибся, 4. kdvutf8 по факту не 4 а 3 байта, причем не 3, а "от одного до трех", т.к. формат плавающий. Какая в таблице Firebird максимальная длина поля VARCHAR UTF8? Без блоб. В байтах и в символах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 22:28 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
alekcvpКакая в таблице Firebird максимальная длина поля VARCHAR UTF8? Без блоб. В байтах и в символах. да что ж такое... Да, у utf8 максимально 4 байта на символ, и это записано в системных таблицах Firebird. И макс длина строки 32к, следовательно, 32/4 = 8к символов. Но это по максимуму, теоретическому. Ограничение, специально чтобы "на всякий случай" ничего не вылезло. Но utf8 на символ хранит ПЕРЕМЕННОЕ КОЛИЧЕСТВО БАЙТ. Например, все русские буквы хранятся по 2 байта на символ. Не по 4, и не по 3, а по 2 байта. А латинские - вообще одним байтом. UTF-8, по сравнению с UTF-16, наибольший выигрыш в компактности даёт для текстов на латинице, поскольку латинские буквы без диакритических знаков, цифры и наиболее распространённые знаки препинания кодируются в UTF-8 лишь одним байтом, и коды этих символов соответствуют их кодам в ASCII.[4][5] https://ru.wikipedia.org/wiki/UTF-8 alekcvpДа, ошибся, 4. вы что считаете-то. текстовое представление кодов символов? Вам ведь уже показали, что абракадабра это \'e0\'e1\'f0\'e0\'ea\'e0\'e4\'e0\'e1\'f0\'e0\ И тут даже не utf8, а однобайтовое кодирование. Впрочем, пофиг. Вся эта rtf-шлабуда будет сохранена в utf8 как 1 байт на символ (см. выше). Так что сильно беспокоиться не о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 22:42 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
kdv И макс длина строки 32к, следовательно, 32/4 = 8к символов. Но это по максимуму, теоретическому. Ограничение, специально чтобы "на всякий случай" ничего не вылезло. Но utf8 на символ хранит ПЕРЕМЕННОЕ КОЛИЧЕСТВО БАЙТ. Например, все русские буквы хранятся по 2 байта на символ. Не по 4, и не по 3, а по 2 байта. А латинские - вообще одним байтом. Да какая разница как оно там внутре хранится, если в базу влезает только из расчёта 4 байта на символ? То что оно переменной длины - хорошо для каналов передачи данных, а на хранение, в случае БД, не влияет никак. kdv абракадабра это \'e0\'e1\'f0\'e0\'ea\'e0\'e4\'e0\'e1\'f0\'e0\ И тут даже не utf8, а однобайтовое кодирование. Ок, в "абракадабр" 10 символов. Сколько таких абракадабр можно сохранить максимально в одном поле VARCHAR с кодировкой UTF8 в формате RTF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 23:01 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
kdv, а если в BLOB хранить, то вообще пофигу, сколько там чего на символ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 23:01 |
|
||
|
Unicode для кириллицы в нижнем/верхнем индексах
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyВсё за пределами ASCII ескейпится. Может, но не обязано. "Голые" байты распознаются в соответствии с указанными в заголовке атрибутами "\ansi\ansicpg1252". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2020, 23:03 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40024766&tid=2037799]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 540ms |

| 0 / 0 |
