|
|
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
DunkinПри приведении PAnsiChar(TBytes) (оба типа managed, приводятся "на прямую") для строки будет выставлен размер TBytes? Не будет: Код: pascal 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Как видно из примера, Delphi просто копирует массив в строку до нахождения символа #0, а он в TBytes, в отличие от string , присутствовать не обязан. И, кстати, с каких пор PAnsiChar стал managed типом?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 13:18 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
alekcvp, Конечно я имел ввиду AnsiString. Просто опустил приведение AnsiString(PAnsiChar(TBytes))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 17:52 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Dunkinalekcvp, Конечно я имел ввиду AnsiString. Просто опустил приведение AnsiString(PAnsiChar(TBytes))). Ещё раз: конструкция AnsiString(PAnsiChar(TBytes))) может вернуть в строке мусор или Access Violation, потому что конструкция "PAnsiChar(TBytes)" будет читать данные из памяти, пока не встретит символ #0, а если его в буфере нет, то она продолжит чтение за границей буфера, а там может быть всё что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 10:13 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Парни, спасибо всем за помощь и подсказки! Но я пока еще не все изучил, предложенное Вами - время-времечка не на все еще хватает к сожалению!..( Я видимо уже писал выше, что чтение и анализ идет побайтный... ну или пытался это выразить своей тестовой процедурой!... В общем - кому интересно, можете взглянуть на практически полную процедуру в теме: " Оптимизация побайтового чтения и сравнения двух бинарных файлов " В ней видно побайтовое чтение, сравнение двух бинарных файлов и формирование выходного файла. Ну никак я не могу понять - почему в текстовом редакторе " Notepad++ " или же в редакторе " WinHex " можно мгновенно изменить кодовую таблицу на любую из примерно сотни предложенных, а в простом " TMemo " для отображения японских 932 или 20932 -й - необходимо весь текст перекодировать в Unicode ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 15:30 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, 1. перекодировать никуда не нужно. нужно правильно отобразить уже закодированное когда-то, как я понимаю. 2. то, что легко и просто видно пользователю, как правило, требует тщательного и вдумчивого кодирования. и чем легче и проще работает тем, как правило, сложнее решение внутри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 17:06 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
BellicНу никак я не могу понять - почему в текстовом редакторе " Notepad++ " или же в редакторе " WinHex " можно мгновенно изменить кодовую таблицу на любую из примерно сотни предложенных, а в простом " TMemo " для отображения японских 932 или 20932 -й - необходимо весь текст перекодировать в Unicode ? ээээ? Вообще-то Notepad++ отображает текст именно в Unicode и никак иначе. Времена двойного ANSI давно прошли, сумасшедших больше нет. Грубо говоря, ты: Код: sql 1. 2. 3. 4. 5. 6. 7. Notepad++: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2017, 17:07 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Парни, подскажите плизз - что делаю не так? ... Отказался от использования MEMO, вывожу ZColorStringGrid (наследован от TStringGrid) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. В результате в ячейке не вижу Иероглифа! Подскажите плизз - что не так делаю?..( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 17:29 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, шрифты проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 17:33 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Примерно такой же код был с использованием Мемо: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Там все показывало нормально - правильные Иероглифы! Но Символьная часть расползалась ввиду того, что Иероглифы имеют большую длину, чем обычные символы. Посему от Мэмо отказался в пользу СтринГрида... Шрифт в Мэмо кстати был Courier, как и сейчас в ZColorStingGrid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 17:40 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
GunSmokerBellic, шрифты проверь. Попробовал с Тахомой - одно и то же!..( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 17:47 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Пардон, совсем забыл, что после Мэмо был вариант с RichEdit ..)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 17:48 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
На всякий случай включил SizingHeight и SizingWidth, но и это не помогло - в место Иероглифа - точка посередине ячейки! (увеличивать длину и высоту ячейки, если текст не помещается) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 18:05 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
GunSmokerBellic, шрифты проверь. Все порешал! - Была досадная накладка в алгоритме..(( Шрифты тут были не при чем! P.S. Кстати - нашел отличный ресурс по кодовым таблицам с таблицами самих символов. Оказалось, что CP932 и Shift-JIS несколько отличаются друг от друга! А сейчас разыскиваю 20932 -ю таблицу с символами, но возможно лучше создать новую тему? GunSmoker , может пообщаемся?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 10:54 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Тебе обязательно Memo ??? Есть редактор - TBCEditorDemo https://github.com/bonecode Архив приложу, который сразу всё включает. Правда там всё собиралось для Токио (Была правка мною omnixml) https://drive.google.com/open?id=1Pmu7KMHELtoZ2vWEVFHYVwPSelxH5whs Собранный мною exe https://drive.google.com/open?id=156vgkDFe-znajHsRDdCIwGJRiqmQcdXR Скрин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 15:09 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, там написано Build requirements Delphi XE4 or higher C++ Builder XE6 or higher А топикастера XE3! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 15:54 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
NetObserverНяшик, там написано Build requirements Delphi XE4 or higher C++ Builder XE6 or higher А топикастера XE3! Там по любому правки в пару строках, и всё соберётся. Сколько раз собирал проекты с D2006-D7 на токио. Значит и в обратную лунку зайдёт хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 16:14 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, у меня кроме ХЕ3 и Токио имеется!))) Вечерком гляну и отпишусь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 16:33 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
BellicНяшик, у меня кроме ХЕ3 и Токио имеется!))) Вечерком гляну и отпишусь... Рекомендации по установки моего архива (Допустим распакованным в D:\bonecode) Сначала указываем в глобальных путях все исходники Начинаем установку по порядку D:\bonecode\Virtual-TreeView-master\Packages\RAD Studio 10.2\VirtualTreeView.groupproj D:\bonecode\Components-master\BCComponents\Packages\BCComponents.Delphi.Berlin.groupproj D:\bonecode\Components-master\BCControls\Packages\BCControls.Delphi.Berlin.groupproj (Просто билдим) D:\bonecode\Common-master\Packages\BCCommon.Delphi.Berlin.Runtime.dproj (Будет 100% требовать omnixml) (Теперь устанавливаем редактор (Проект для берлина легко ставится на Токио)) D:\bonecode\TBCEditor-85efbcfb9b90f64220d135dcdf89282849a6c3b7\Packages\BCEditor.Delphi.Berlin.groupproj (Открываем тестовый пример) D:\bonecode\Demos\Simple\TBCEditorDemo.dproj ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 17:09 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Кстати, по пути D:\bonecode\Common-master\Source\BCCommon.Encoding.pas Есть готовая процедура, для смены кодировки на лету Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 17:14 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, глянул я Экзешник и процедуру перекодировки... Мне нужно совсем другое! ... По простому говоря: имеем побайтовое чтение файла, имеем японскую кодировку ( Shift-JS , CP932 или 20932 ). В процедуре в зависимости от выбранной кодировки нужно определить - сколько байт имеет очередной символ? После этого данное количество собирается в RawByteString , например так: Код: pascal 1. затем: Код: pascal 1. и пишем это в ячейку ZColorStringGrid В результате в данной ячейке будет корректно отображен японский иероглиф (двухбайтный в примере)... ... В чем сейчас у меня проблема? А в том, что для Shift-JS и CP932 я могу выделить Множества или Диапазоны на основе вот этих реальных таблиц: - http://www.kreativekorp.com/charset/encoding.php?name=Shift-JIS - http://www.kreativekorp.com/charset/encoding.php?name=CP932 И соответственно могу построить алгоритм расчета - сколько байт занимает очередной японский символ - 1 или 2! А вот для 20932 - аналогичной таблицы не нашел в Интернете - а в этой кодировке есть 1, 2 и 3-х байтные символы. ЗЫ: Сначало собирал в строку, если помните и выводил в Мемо, но строки иногда расползались, в результате - выбрал компоненту ZColorStringGrid , где для каждого символа или иероглифа можно выделить одну ячейку и ничего не расползается! Еще понравилось, что можно объединять ячейки и раскрашивать (шрифт и фон) и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 21:24 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
А зачем делать такой мазохизм ??? Сразу сделать одну кодировку - UTF8 и всё. Кстати, по стандарту все твои иероглифы поддерживаются в Memo решил проверить Всё верно. 36 * 2 = 72 в UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 22:49 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, ты не внимательно читаешь - я два раза повторил... Вот тебе скриншот прикладываю... Верхние три поля - это Мемо , нижнее - StringGrid Надеюсь видно что в верхнем Правом Мемо все расползается из-за наличия там Иероглифов? По этой причине и по другим - пересел на ZColorStringGrid! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 23:06 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 02:22 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, а теперь смени кодировку в Символьной колонке!? Поставь 932. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 06:34 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, а еще - мне режим редактирования не нужен! Только просмотр некоторой области вокруг определенной последовательности байт, с ее подсветкой, объединение ячеек, цвет шрифта отдельных ячеек. Мой код - десяток строк, а Компонент по любому тяжелее будет! Но за ссылку - Спасибо! Обязательно погляжу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 09:54 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39571589&tid=2041272]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 293ms |
| total: | 436ms |

| 0 / 0 |
