|
|
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Столкнулся с проблемой вывода в Memo японских иероглифов. Имеем японскую фразу " こんにちは " (по русски - " Добрый день "). К сожалению форум не позволил мне вывести эти символы, поэтому вывожу графику: В кодовой таблице " SHIFTJIS " ( 932 ) это будет " 82B182F182C982BF82CD " (Hex). На Форме находятся кнопка " Button " и " Memo ", в свойствах шрифта которого выбрана Charset=" SHIFTJIS_CHARSET ". Процедура обработки нажатия кнопки: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. На выходе имеем вот такой результат: Подскажите плизз - как решить задачку? P . S . И еще попутный вопрос - как добавить в Дэлфи кодовую таблицу 20932 ? (Что бы ее можно было для выбрать в свойстве Font.Charset для Memo !) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 11:56 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, всё замечательно расписано, кроме главных вводных: версия среды и версия операционки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:01 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
makhaonBellic, всё замечательно расписано, кроме главных вводных: версия среды и версия операционки. Пардон, еще же подумал, что надо бы сделать!..)) - Windows 7 6.1 (Build 7601: Service Pack 1), 32-bit, включена поддержка Японского языка. - Delphi® XE3 Version 17.0.4625.53395. P . S . я понял так, что свое сообщение я уже не могу подправить после опубликования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:12 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Без unicode-строки текст в TMemo для указанного примера в любом случае будет искажен - неправильно будут отображаться либо русские символы, либо японские. Соответственно коды букв должны быть 2х байтные (Word), а не Byte ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:13 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
asutp2Без unicode-строки текст в TMemo для указанного примера в любом случае будет искажен - неправильно будут отображаться либо русские символы, либо японские. Соответственно коды букв должны быть 2х байтные (Word), а не Byte Дело в том что приведенный пример кода максимально приближен к Реальному проекту , а в нем идет побайтовое чтение из реального файла и вывод в Memo ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:21 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
И еще одна проблема - при чтении из файла среди "двухбайтовых" иероглифов могут встретиться "однобайтные" английские символы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:31 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, так не получится. нужно собрать нормальную юникодовую строку и затем её добавлять в memo. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:42 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
как вариант - прочитать сразу как строку. смысл файл читать побайтно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:43 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, операционной системе фиолетово, как хранятся символы у тебя в файлах, и твой же пример этот факт демонстрируется во всей красе :) Для решения проблемы используй unicode-строки, без уникода русские и японские символы одновременно в ansi отображаться не будут. исходные файлы нужно предварительно преобразовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:44 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
makhaonкак вариант - прочитать сразу как строку. смысл файл читать побайтно? Я подумаю над этим, но ввиду необходимости вылавливания Упр.Символов в строке (А они там порой попадаются) - приходится читать побайтно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:47 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
asutp2Bellic, Для решения проблемы используй unicode-строки, без уникода русские и японские символы одновременно в ansi отображаться не будут. А Русских символов в файлах вообще нет! Там Английские и Японские! + Упр.Символы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:49 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, без разницы, хоть китайские . управляющие символы можно вполне зафильтровать в строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:51 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
makhaonBellic, без разницы, хоть китайские . управляющие символы можно вполне зафильтровать в строке. Есть ли вариант - доработать указанный выше код, что бы увидеть Иероглифы? я еще слабо разбираюсь в Юникоде! Можете реально код подправленный привести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 12:59 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellic, например так: Код: pascal 1. Если данные сохранить в файл в utf8. Если кодировка другая - то поменяй на нужную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:03 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
судя по этому: авторпри чтении из файла среди "двухбайтовых" иероглифов могут встретиться "однобайтные" английские символы! у тебя utf8 скорее всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:07 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
makhaonBellic, например так: Код: pascal 1. Если данные сохранить в файл в utf8. Если кодировка другая - то поменяй на нужную. Исходный файл - вообще не Текстовый! Это двоичный файл прошивки для CPU в котором встречаются текстовые блоки на Английском, Японском и смешанном - ENG+JPN. Поэтому преобразовать его не получится! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:11 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Вообще, общая идея такая: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но имей в виду, что за конструкции типа "j := j + AnsiChar(Bytes[i]);" в цикле надо бить палками, потому что это дико неэффективно, как по скорости, так и по выделению памяти. Так что этот говнокод - только для примера решения твоей проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:19 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Забыл добавить Код: pascal 1. в самом начале процедуры, редактировать нельзя :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:21 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Либо таким методом, через TEncoding. Причем ты можешь обоими методами перекодировать и английские символы. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:28 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Спасибо большое! - По разбираюсь пока с Кодами..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 13:53 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Второй вариант мне больше понравился! Попробовал вариант с текстом ENG + JPN : Код: pascal 1. 2. Класс!!! Осталось решить - как при выводе на лету заменить внутри байт $ 0A на $ 40 (символ ' @ '), если таковой встретится!? Например если: Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 14:45 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Ещё вариант: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Во втором варианте утечка памяти - все TEncoding с нестандартными кодировками нужно прибивать. StringReplace для замены "на лету", но лучше не "на лету". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 15:51 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
DunkinЕщё вариант: Код: pascal 1. 2. 3. 4. 5. 6. Так, как исходный массив не заканчивается на $00, то эта конструкция будет работать только пока память после него случайно забита нулями. Как только там появятся какие-то другие значения - в тексте будет мусор и может случиться AV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 18:00 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
BellicDelphi® XE3 Version 17.0.4625.53395 Delphi 2009 и выше (т.е. в т.ч. и Delphi XE3) относятся к Unicode IDE. Это означает, что любые текстовые данные для вывода должны быть представлены в Unicode (UTF-16). Если ваши текстовые данные находятся в другом формате - их нужно предварительно преобразовать. Bellicв свойствах шрифта которого выбрана Charset="SHIFTJIS_CHARSET" Не нужно это делать. В Unicode вы не работаете с кодовыми страницами. BellicИ еще попутный вопрос - как добавить в Дэлфи кодовую таблицу 20932? Кодовая страница 20932 является частью Unicode. Она уже есть и используется. Не нужно её выбирать. И, кстати, по-моему, у вас данные - в 932, не в 20932. Bellicв нем идет побайтовое чтение из реального файла Читайте в RawByteString: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Или, если кодировка фиксирована, то можно так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Можно и через TEncoding, то смысла большого нет, больно громоздко для вашей задачи. BellicК сожалению форум не позволил мне вывести эти символы И ровно так же может случиться и в Delphi приложении. Чтобы пользователь успешно увидел правильный текст, нужно два компонента: - Текст должен быть представлен без потерь в подходящей для вывода кодировке - это мы сделали выше - В используемом шрифте должны быть отрисованы иероглифы, а не заглушки По шрифтам больше информации - тут: http://www.transl-gunsmoker.ru/2009/05/blog-post_3589.html Кратко: - Если у вас выбран шрифт по умолчанию (Tahoma), то система сама выберет подходящий шрифт (если он вообще есть в системе) - т.н. "Font Fallback". - Для старых систем лучше таскать шрифт с собой, поскольку в системе он может быть не установлен. Например, Arial Unicode MS. BellicОсталось решить - как при выводе на лету заменить внутри байт $0A на $40(символ '@'), если таковой встретится!? Управляющие символы преобразуются без изменений. Просто сконвертируйте в String и сделайте StringReplace (ну или циклом for). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2017, 19:22 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
alekcvp, Пф-ф. ТС наверняка в состоянии написать через Move. В реальной жизни вряд ли будет через статический массив. При приведении PAnsiChar(TBytes) (оба типа managed, приводятся "на прямую") для строки будет выставлен размер TBytes? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2017, 02:18 |
|
||
|
Вывод в 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 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, подскажи плизз - как установить этот компонент (BCHexEditor)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 10:17 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
BellicНадеюсь видно что в верхнем Правом Мемо все расползается из-за наличия там Иероглифов? А если поставить моноширный шрифт, типа Courier New?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 11:24 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
alekcvp, Не хочу обратно возвращаться к Мэмо! Пробовал вроде по разному - Иероглифы размер больше имеют! Да и у СтринГрида другие "плюсики" имеются..))) я кстати запихиваю иероглиф в две объединенные ячейки - получается почти как в ВинКексе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 11:28 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Открой \Packages\BCHexEditor.Package.Runtime.dproj Переключи битность приложения в 32 бит Удали {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} Нажми ctrl + s и билди Открой \Packages\BCHexEditor.Package.Designtime.dproj Билди и установи (Будет что - то орать при установки, закрой среду полностью. Попытайся открыть ) BCHexEditor.Package.Designtime.dpk и его установи. Дальше открываешь демку. Ставишь галку ReadOnlyView и больше пользователь не может редактировать. Снизу можно включить отображение юникода ... Можно включить отображение грида, и прочие настройки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 12:08 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} Где такое удалять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 12:17 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Нашел где удалить {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} Все сделал как ты описал - но компонента не появилась!..(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 12:27 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:21 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Кстати, там компонент - TBCHexEditorEx поддерживает такой вид отображения (По моему тебе такой и нужен был) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:26 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, уже что только не делал! Не получается! И ДизайнПак и РанПак открывал и компилил.. ПЕрвый вроде говорит что все ок.. а второй - BCHexEditor.Package.Runtime.pas не могу установит - этого файла нету! Как то вся установка через Ж! Это твой труд? - Может по человечьи сделаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:29 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, пока я дома - может ТаймВьюером зайдешь и настроишь сам? 852 355 362 7450 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:33 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
ПАрдон - лучше дай Мыло - вышлю пароль!.)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:35 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Читать бы тебе научится Няшик(Будет что - то орать при установки, закрой среду полностью. Попытайся открыть BCHexEditor.Package.Designtime.dpk и его установи.) Я эти компоненты установил за минуту (со скачиванием) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:36 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, возможно... Пишет что проект уже содержит Юнит и Форму... Давай ТаймВьюером? Делов то 2 минуты, если верить тебе!?)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:45 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, я свой ящик в своем профиле засветил.. пиши туда.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:48 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, установил я... поискал BPL-файлы и засунул куда нужно!,,)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 14:16 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
я понял, что описания никакого нету к этим компонентам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 14:20 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 14:26 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Bellicя понял, что описания никакого нету к этим компонентам? Да оно особо и не нужно. Там всё интуитивно понятно. Хотя если возникают трудности с установкой... То это наверно у меня нет проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 14:28 |
|
||
|
Вывод в Memo японских иероглифов (932-я кодовая таблица)
|
|||
|---|---|---|---|
|
#18+
Няшик, а какой прогой пользуешься для записи в GIF ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2018, 12:38 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041272]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
235ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 573ms |

| 0 / 0 |
