|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.08.2008, 09:59 | #1 |
Пользователь
Регистрация: 03.08.2008
Сообщений: 30
|
Что такое LeadBytes?
Что такое LeadBytes и для чего используется? В часности, что это за проверка:
if (Test in LeadBytes) then Каким символом должен быть Test, чтобы выражение стало true? Всем ответившим, заранее спасибо. |
31.08.2008, 10:11 | #2 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Судя по всему
Test: byte; LeadBytes: set of byte;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
31.08.2008, 10:39 | #3 |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
LeadBytes
Lead bytes in Multi-Byte character sets Declaration Source position: sysstrh.inc line 55 const LeadBytes: = []; Description LeadBytes contains the set of bytes that serve as lead byte in a MBCS string.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
31.08.2008, 10:41 | #4 |
Пользователь
Регистрация: 03.08.2008
Сообщений: 30
|
Я взял эту срочку из чужого кода (если конкретно - процедура GetMatchingBracketEx объекта TSynEdit)
Сейчас я переписываю эту процедуру под себя и мне бы очень хотелось знать что происходит в этой строке. Test там типа Char, по идее она текущий считываемый символ из текста. Я написал небольшую программку, где выполнил эту проверку для всех ansi сиволов, и ни один из них не прошел ее. unicode не предлагать - тип все таки char, а не WideChar. Так что же все таки выясняется в ходе этой проверки? |
31.08.2008, 10:43 | #5 |
Пользователь
Регистрация: 03.08.2008
Сообщений: 30
|
А можно description по русски написать, пожалуйста.
|
31.08.2008, 10:45 | #6 | |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Char это тот же байт. В проверке проверяется наличие этого байта в множестве. Если не находит, то скорее всего множество пустое - [].
Цитата:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
31.08.2008, 10:55 | #7 |
Пользователь
Регистрация: 03.08.2008
Сообщений: 30
|
Всем спасибо!
Еще знать, что такое MBCS строка? |
31.08.2008, 10:58 | #8 |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
{ LeadBytes is a char set that indicates which char values are lead bytes
in multibyte character sets (Japanese, Chinese, etc). This set is always empty for western locales. } var LeadBytes: set of Char = []; нашел в какомто исходнике
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
31.08.2008, 11:04 | #9 |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
MBCS
Несмотря на то, что Unicode был специально разработан для поддержки многих языков, использовать его для хранения и передачи строк в Америке и большей части Европы неэффективно, потому что для этих регионов достаточно 256, а иногда всего 128 символов. Ведь первые 128 символов Unicode (\u0000 — \u007F) совпадают с ISO-646, а первые 256 символов (\u0000 — \u007F) совпадают с ISO-8859-1. Тем самым, используется только маленький кусочек всего спектра Unicode, ведь старший байт почти всегда равен нулю. Возникает желание по-прежнему использовать Unicode внутри программы, но хранить и передавать данные в 8-битной кодировке, преобразуя данные непосредственно перед их получением или записью. В качестве записи в 8-битной кодировке можно использовать технологию MBCS, где каждый символ может занимать несколько байт. Вопрос заключается в том, какой набор символов (кодировку) использовать для такого преобразования. Существующие кодировки не подходили для этой цели, поэтому Unicode Consortium выработал специальные кодировки для преобразования Unicode-строк в MBCS-строки. Эти кодировки носят название Unicode Transformation Format (UTF), и существуют в двух вариантах: UTF-7 и UTF-8. Они различаются количеством бит (7 или 8), используемых для кодирования. Кодировка UTF-7 характерна тем, что часто требует больше байтов для представления данных, чем сам Unicode. Но эта кодировка необходима, так как многие старые системы (и не только, например, MIME) используют 7-битную кодировку символов. Кодировка UTF-8, в свою очередь, очень хорошо подходит для хранения текста, который используют ASCII символы, и символы, чей Unicode код меньше \u0800. В этом спектре лежит большинство символов, используемых в европейских (соответственно, и американских) и ближневосточных странах. Для символов, чей код больше \u07FF, UTF-8, наоборот, мало подходит, потому что эти символы расплываются до 3 байт. Алгоритмы конвертации между Unicode и UTF-7 или UTF-8 описаны в стандарте Unicode (The Unicode Standart).
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
31.08.2008, 11:05 | #10 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
MBCS - multi byte character set
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что-такое .Net | Иллидан | Общие вопросы .NET | 3 | 17.01.2008 16:41 |
Что такое Win32 API | Slovinsky | Свободное общение | 10 | 29.10.2007 10:46 |
Что такое DLL и с чем его едят?? | Илюха | Общие вопросы Delphi | 5 | 06.10.2007 10:43 |
то такое мастерство в программировании, что такое мастер программист и что он может? | Cezar | Свободное общение | 29 | 02.06.2007 23:48 |