Показать сообщение отдельно
Старый 17.10.2008, 18:02   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от EVGL Посмотреть сообщение
128 - это не максимальная длина, а емкость одного "блока". Сама строка может быть какой угодно длины, лишь бы бумаги и размаха луча хватило.
Тем более непонятно ограничение длины упомянутого EDT...
Цитата:
Сообщение от EVGL Посмотреть сообщение
Промежуточная строка, генерируемая bcfont32.dll, зависит, очевидно, от используемого шрифта. Если взять больше "букв", то символов станет нужно меньше. Получается, что максимальную длину промежуточной строки надо вычислять эмпирически.
Я попробовал закодировать в Code128 строку из 96 печатных символов 1-й половины ASCII-таблицы, получилась "промежуточная строка" уже из 284 символов.
Код:
 !@#$%^&*-_+=,./\'<>?:;\\[]`~|{}()0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
%"$&%&'%%""'"#&#"&/!!"&#&#""%*!"('""*&!!&*"&)!*&)-!"'"*%"%%'%'%*"%)&")-!)-!+%!&$!!$&?v?-%%!#-#&"&"#!)-&%&)%)!)'$!&%%-!-)"!("$%$!&$"%!&$!(""%$"(!$%"$&!("!&!$-)!(!"#-!!"."!.""-!.""-"".!-"".!"."!%%-%-%!#'#!'##%!'##%##'!%##'!#'#!!%+!')#%)!)'!+%#)%))%%#)'!)%)#%+!%)))!')#%+!%)%#)'!)#%')!1
В общем, мне кажется, моя оценка в 400 символов для EDT BarcodeString, конечно, не является гарантированно достаточной с учетом неограниченности длины исходной перекодируемой строки, но по крайней мере, для большинства случаев этого должно хватить.
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Интересует верхний предел. Больше какой длины не нужно?
Как уже упоминалось, в общем случае гарантированно достаточной длины нет; с другой стороны, в таблицах этот EDT вроде бы не используется, так что увеличивать его длину можно относительно безболезненно.

PS. Особенности кодирования информации в том же Code128 можно, к примеру, посмотреть здесь