IV. Пример прочтения штрихкода EAN-13 вручную
А теперь давайте в качестве примера прочитаем штрихкод, руководствуясь таблицами соответствия.
Каждая цифра штрихкода представляет собой две тёмные полосы, для наглядности на рисунке эти пары обведены белыми кружочками.
Сравнивая каждую пару чёрных полосок с таблицей, мы легко выясним значение 12 цифр. Чтобы выяснить значение "выносной цифры" подпишем в белых кружочках значение i или o, в зависимости от того, из какой таблицы была цифра. Таким образом в нашем примере получается такая последовательность: i i o i o o, и посмотрев по таблице мы находм, что это сочетание соответствует цифре 1. Таким образом мы выяснили все цифры, закодированные в этом штрихкоде. На разделительные шестёрки мы просто не обращаем внимания - они не несут никакой полезной информации.
Мы можем также подсчитать контрольную сумму (=8) и сравнить её с последней цифрой - совпадает.
V. Есть ли в штрихкоде EAN-13 так называемые "три шестёрки" ?
Современное описание стандарта EAN-13 не предполагает трактовку "разделительных линий" в начале, середине и конце штрихкода как цифры "6". Тем не менее, справедливости ради следует отметить, что стандарт EAN-13 создавался для декодирования простейшей электроникой, а вовсе не микропроцесорной техникой или компьютерами. Электроника декодирует штрихкод по простейшим правилам, технически она не способна отличать "разделительные линии" от цифр "6". При чтении штрихкода EAN-13 в памяти устройства в том месте, где изображены "разделительные линий", читаются именно цифры "6" (которые позже отбрасываются).
Следует понимать, что малейшее усложнение алгоритма декодирования означает удорожание конструкции, изготовленной на простейших электронных компонентах. Разработчики стремились максимально упростить схему, именно поэтому в качестве "разделительных линий" выбрали одну из цифр. Это могла бы быть любая другая цифра. Разработчики стремились максимально упростить алгоритм декодирования чтобы уменьшить себестоимость дешифратора, и это вполне естественно не только для экономных американцев, но и вообще для всех людей, умеющих считать деньги.
С технической точки зрения и с точки зрения истории этого штрихкода он содержит в себе "три шестёрки", играющие роль разделителей. Усматривать или нет в этом апокалиптический знак "666" - рассуждать об этом не входит в цели данной статьи.
> В стандарте EAN 13 цифра 6 кодируется не двумя тонкими штрихами, а комбинацией штрих, пробел, штрих и ещё четыре пробела.
На это мной тебе будет дан ответ ниже... после сигнала.
А теперь слушай Стас.
При крещении человека происходит таинство Помазания, через которое может спастись человек в вечности... Ни на практике, ни через личный взгляд ты не сможешь этого увидеть глазами, а потому и принять не можешь. Поэтому для таких как ты никакими приборами и другими техническими объяснениями не измерять этот процесс, который очевидно выглядит как простое помазание маслом подсолнечным.
Поэтому никакой закон физики, механики, математики не способен объяснить "Лончанское чудо", в котором как бы ты не искал технически и экспериментально, но не получишь 1+1+1+1+1 = 5!!! А получишь = 1!!! Веришь ты в это или не веришь, видишь или не видишь, просчитаешь или не просчитаешь и т.д., НО ЭТО - ФАКТ!!!
Но в силу того, что ты применяешь исключительно научные и прочие материальные изследования без использования духовных ЗАКОНОВ, которые существуют одновременно с физическими и определяют физическую закономерность, то ты НИКОГДА не сможешь дать объяснения одновременно видимому и в то же время не видимому. Ты ограничен УМОМ!!! А ты и не ищешь понимания - о чём тебе ни один раз мной писалось.
Поэтому ты видишь штрихи и пробелы, но не видишь "6" так же, как ты утверждал что один набор цифр из 13 невозможно представить другим набором в 7 и наоборот... Напомню тебе как 8 цифр легко стали 5-ю и наоборот:
Обработка формата даты в число |
А когда тебе это было показано, ты просто обошёл этот момент БЕЗ КАКИХ ЛИБО КОММЕНТАРИЕВ, но продолжил настаивать на своём бредовом "нет в штрих-коде 6-ок". Так и хочется тебе сказать перефразируя одно высказывание: "Есть, Федя! Есть!"
Упрямство твоих поисков не дало тебе результата в понимании того, что было в Духе Святом открыто Паисию Святогорцу святой Евфимией, т.е. промыслом Божиим потому, что Паисий Святогорец для понимания использовал пост и молитву, в отличие от тебя. Ты всё пытаешься объяснить ничтожными знаниями и практическими изследованиями... И поэтому для таких как ты написано в Слове Божьем, что все знатоки и учёные, гордецы и тщеславцы, профессора и кандидаты наук будут посрамлены, чтобы НИКОГДА и НИКТО не хвалился, причём теми, кто не имеет ни учёных степеней, ни прочих "достоинств, заслуг и регалий" этого міра!!!
И вот, не имея смирения перед Божьими угодниками, вы (ты и подобные тебе) пытаетесь доказать то, что простой ВЕРУЮЩЕЙ (!) душе очевидно. Поэтому сбываются на таких как вы слова: "Кто имеет ум, тот сочти число зверя...". А такие как вы, получается - его не имеете!!!
А если бы ты был действительно верующим, то тебе была бы знакома (не на бумаге - в виде букв, а духовно - молитвой)такая простая истина: «Ищите, и обрящете, толцыте, и отверзется вам»
Теперь подаю тебе знак: отвечаю, как полиглот, сразу на два твоих изречения.
Первое:
> В стандарте EAN 13 цифра 6 кодируется не двумя тонкими штрихами, а комбинацией штрих, пробел, штрих и ещё четыре пробела. Подобных пробелов не наблюдается у пресловутых двойных линий, поэтому они никак не могут являться шестёрками. Сканер не считывает их как цифры 6.
Второе:
> А EAN 13 - это давным давно устаревший стандарт. Он практически почти нигде не используется, кроме розничной торговли, потому что невозможно заменить многие миллионы сканеров во всех магазинах.
если какие-то моменты ссылок по тексту будут не понятны, то ниже будет указан источник, кроме автора.
Здравствуйте, Алексей Иванов.
Вы писали 20 марта 2003 г., 15:28:35: письмо с текстом о штрих-коде, которое я, как написал Вам прежде, переслал специалистам. Однако внимательно ознакомившись с присланным мне текстом, я, не дожидаясь ответа экспертов, позволю себе несколько замечаний (которые допускает мое "дилетантское" высшее техническое образование и степень кандидата наук).
Замечание 1 (общего плана):
Довольно не этично д. Андрею Кураеву, или кому-то очень близкому ему обращаться с анонимными посланиями, прикрываясь компилятом из чужих цитат. Если действительно пытаться выстроить научную дискуссию, то пусть с обоих сторон говорят эксперты для начала хотя бы в данном техническом, а не философском вопросе.
Замечание 2.
Если взглянуть на присланное Вами штрихофильское сочинение, то его основным недостатком, как и положено для всякого компилята, являются синкретизм и нецелостность. Мне лениво разбираться в нем по предложениям и тезисам, поэтому давайте взглянем на проблему штрих-кода как бы сверху, чтобы увидеть его не по частям, а целиком, и, тем самым выявить все "тонкие моменты".
Замечание 3.
Прежде всего, данная система кодирования, разработанная Дж. Лорером, является системой, т.е. чем-то целостным, внутренне согласованным и непротиворечивым, с надежно работающим и обеспечивающим выполнение целевой задачи hard&soft-ом. Поэтому всякие идиотские предложения - типа "давайте произвольно добавим или сотрем штришок или пробел!" - лучше навсегда забыть. Когда бы такое было возможным, данный технический "прибабах" следовало б выкинуть на помойку и не за какие-то там мировоззренческие штучки, а просто, как непригодную для использования вещь.
Замечание 4.
Основными системными параметрами EAN-13, опуская ненужную детализацию, можно назвать следующие:
а) количество значимых символов кода - 12;
б) один контрольный символ, соответствующий цифре, которая расчитывается путем 6 операций с 6 четными и 6 нечетными цифрами, кодируемыми значащими символами (опять три шестерки - ну, "как на зло"! );
в) число кодируемых основных знаков - 10 цифр;
г) число модулей в каждом знаке - 7;
д) число вариантов кодирования - 3 (наборы A, B, C);
е) содержание каждого знака - 2 штриха и 2 пробела (первый пробел в наборах A, B/ первый штрих в наборе C);
ж) дополнительные характеристики наборов А, В, С: сумма модулей в штрихах каждого символа наборов А и С - четное, набора В - нечетное; набор С является зеркальным по отношению к набору А;
з) при декодировании в расчет принимаются не все 4 составляющие символа, а только три из них - штрих-пробел-штрих (см. таблицу 4.10 ГОСТа);
д) число вспомогательных знаков - 5 (типовой знак ограничитель - 3 модуля - штрих-пробел-штрих; центральный знак-ограничитель - 5 модулей - пробел-штрих-пробел-штрих-пробел; специальный знак ограничитель - 6 модулей - пробел-штрих-пробел-штрих-пробел-штрих; знак ограничитель дополнительного символа - 4 модуля - штрих-пробел-штрих-штрих и знак разделитель дополнительного символа - 2 модуля - пробел-штрих);
е) дополнительная характеристика типового знака ограничителя - аналог сигналов СТАРТ и СТОП в других системах кодирования.
Безусловно все эти сведения Вы и сами могли хорошо изучить в ГОСТе.
Замечание 5.
Относительно процедуры декодирования:
Система построена таким образом, что в каждых двух соседних знаках штрих-кода последний штрих предыдущего соседствует с первым пробелом последующего (или же, в зависимости от конкретного набора, последний пробел предыдущего с первым штрихом последующего). Иначе говоря, для трех соседних штрихов в знаках наборов А и В расстояние между окончанием первого из них и окончанием третьего равно 7 модулей (см. предыдущее замечание). Аналогичная дистанция содержится и между началом первого штриха и началом третьего штриха в знаках набора С. Как видите, совершенно надежный способ автоюстирования измерительного прибора в процессе измерения. И вовсе нет необходимости извращаться, чтобы сканер, как Вы пишете, делал "поправку на изменяющуюся скорость движения руки измерителя", опираясь на "истинную" толщину модуля в знаках-ограничителях. (В скобках замечу также, что Вы, вероятно, просто никогда не видели, как работают ридеры штрих-кодов: НИКТО РУКОЙ ПО ПОСЛЕДНИМ СЧИТЫВАЮЩИЙ ПРИБОР НЕ ВОЛОЧИТ - не путайте с домашним или офисным сканером, а приглянувшийся Вам случай определения штрих-кода на неровной поверхности, скажем, сыра является скорее не правилом, а артефактом, связанным с российским представлением о торговом сервисе).
Замечание 6.
После того, как сканер измеряет 7-модульную ширину знака, несложным становится сделать его привязку к ширине одного модуля в пределах данного знака. С этого момента пробел, который находится на границе между двумя знаками становится ненужным, и декодирование, как это и описано в таблице 4.10 ГОСТа уверенно производится по оставшимся трем составляющим: штрих-пробел-штрих.
Из сказанного вытекают две вещи:
Во-первых, один из пробелов в знаках - первый или последний в зависимости от набора А, В или С - никакого значения для "узнавания" знака не имеет;
а во-вторых, добавлять или отнимать пробелы, как это проделывали Вы в своих экспериментах, нельзя, ибо тем самым Вы сбивали юстировку прибора и нарушали саму возможность "узнавания".
Замечание 7.
Из предыдущего замечания следует, что независимо от того, какой смысл вкладываете Вы, прибор или кто-либо еще в изображение состоящее из 1-модульной черты - 1-модульного пробела - 1-модульной черты, Вам, если попытаетесь прочесть эту графическую комбинацию в системе кодирования EAN-13, придется узнать в них цифру "6". Ибо только ей это изображение в данной системе и соответствует. Что же касается таблицы ГОСТа 4.1, где приведены параметры "кодирования" цифр в наборах А, В и С, то она, как это и делается часто в технических руководствах, без каких-либо специальных пояснений содержит, как сам код, так и правило его применения: указание где и как дополнять нулями или пробелами значение кодируемой цифры до соответствующего ей в каждом наборе стандартного 7-модульного знака. В противном случае, сравнивая табл. 4.1 и 4.10, придется признать вырожденность используемой системы кодирования EAN-13, что недопустимо (да и неверно).
Замечание 8.
О смысле знаков-ограничителей. Как уже писалось, они (по крайней мере боковые знаки-ограничители) соответствуют сигналам начала и конца сканирования. Заканчиваясь на штрих, левый знак-ограничитель дает начало отсчета для обозначающего первую цифру знака набора А. А начинаясь со штриха, правый знак-ограничитель показывает конец отсчета для обозначающего последнюю цифру знака набора С. Центральный знак-ограничитель, начинаясь с пробела и заканчиваясь пробелом, служит своеобразным переключателем для порядка расположения штрихов и пробелов вдоль штрих-кода (чтобы обеспечить переход от набора А ->...-> к набору С). Единственным объяснением для этой операции, равно как и для наличия набора С, зеркального набору А, может служить только тот факт, что разработчику данной системы штрихового кодирования очень важно было, что первый знак-ограничитель непременно заканчивался на штрих, а последний - с оного начинался.
Замечание 9.
Взглянув, как работает - и уверенно работает! - механизм системы кодирования EAN-13, остановимся на нескольких его, волюнтаристки введенных Дж. Лорером странностях.
Во-первых, центральный знак-ограничитель понадобился разработчику данной системы только для того, чтобы сделать возможным использование двух ОДИНАКОВЫХ боковых знаков-ограничителей, да еще таких, когда левый из них непременно заканчивается на черту, а правый с нее начинается. Естественно, что при структуре не служебного, а информативного знака - 2 штриха/2пробела - такая технологическая прихоть создателя системы потребовала еще ничем другим не оправдываемых усложнений: введения центрального знака-переключателя (центрального знака-ограничителя) и создания набора С, инверсного набору А. Ни один другой штрих-код подобным изгибом технической мысли не отягощен. Да и в пределах EAN-13, где существует 5 типов служебных знаков, вполне возможно было бы использовать справа и слева РАЗНЫЕ знаки-ограничители и искусственно не усложнять систему. Лорер, тем не менее, на это усложнение пошел, да еще таким образом, чтобы и знак-переключатель визуально не отличался от знаков включения и выключения сканирования.
Во-вторых, для обозначения трех разделителей было выбрано такое, которое и "на глазок" , и согласно применяемому коду EAN-13 соответствовало бы цифре "6". Я полностью согласен с Вами, что для процессора, обрабатывающего результаты сканирования сугубо функционально, т.е. в пределах решаемой задачи, нет никакой необходимости транслировать в цифры знаки-ограничители. Но ни я, ни те, кто выступает в качестве наших экспертов, НИКОГДА И НЕ ГОВОРИЛИ НИЧЕГО ПОДОБНОГО. Вполне, вероятно, что Вы услышали таковую интерпретацию либо в силу косноязычия наших авторов - увы, язык - враг того, кто пытается им воспользоваться для объяснений, - либо потому, что очень хотели это услышать. Однако ПРОЧТЕНИЕ линий-разделителей по правилам данной системы кодирования обнаруживает их идентичность шестерке - 1-модульный штрих - 1-модульный пробел - 1-модульный штрих.
Теперь соедините обе странности вместе: искусственное - по произволу разработчика, - ничем не оправданное использование трех линий-разделителей вместо двух и обозначение этих разделителей, как цифры "6" в данной системе кодирования. Добавьте еще также и тот факт, что линии-разделители искусственно выделены из штрих-кода (только не говорите, что это необходимо для ридера!) и акцентированы таким образом, чтобы не ускользнуть от внимания ЧЕЛОВЕКА.
Нет, не для процессора сделан этот штрих-код, а для нас с Вами, чтобы, взяв любой товар в руки, или взглянув на помеченное им животное или человека, мы без труда обнаружили как бы ПОВЕРХ (точнее, понизу) штрихов число "6.......6......6". И чтобы сообразить, что написано, вовсе не требуется, как пишете Вы, "приложить усилия по изучению символики штрих-кода" - цифра шесть достаточно распространена и легко обнаруживаема по подписи под соответствующим штриховым значком. Только идиот не проведет соответствующей параллели.
Замечание 10.
К сожалению, все Ваши рассуждения о том, что три шестерки не тождественны трем шестеркам в EAN-13 и что написаны эти знаки "для компьютера" я считаю демагогическими по причине, высказанной в предыдущем замечании. Компьютер - железка, что ему до мистического числа? А вот для человека эта надпись значима, для человека искусственно вставлена и для человека же и выделена.
ЛИЧНО ВЫ И ПРОЧИЕ ШТРИХОФИЛЫ МОЖЕТЕ УТЕШАТЬ СЕБЯ ТЕМ, ЧТО "отношение к штрих-кодам уже целиком зависит не от символики самих кодов, а от готовности относящегося акцентировать внимание на этом “графическом сходстве” или же игнорировать его или даже просто – со знанием дела – отрицать".
Если так велика Ваша потребность в том - пользуйтесь, пожалуйста, означенным выше плодом технического прогресса. Ни я, ни другие никого от этого не отговариваем. Если кто-то способен утешить себя сентенцией, что штрих-пробел-штрих в линиях-разделителях "только похож, но не тождественен" штриху-пробел-штриху, обозначающему цифру "6" - это его личное дело и личный же выбор. Ни к нему, ни к Вам мы с этим НЕ ПРИСТАНЕМ: поступайте, как Вам заблагорассудится.
Однако все ж, хотя бы ради любопытства, взгляните, как много искусственно созданных условий сошлось в EAN-13:
- хотя сей штрих-код не самый продвинутый и современный, зато принудительно сделан самым распространенным;
- хотя мог бы использовать две линии-разделителя, однако специально усложнен, чтобы использовать три;
- хотя в качестве разделительных линий без каких-либо проблем могли бы использоваться любые комбинации штрихов и пробелов, однако используется именно тот, что по правилу декодирования соответствует цифре шесть;
- хотя нет никакой нужды визуально выделять разделительные линии, они удлинены и обнаруживаемы человеческим глазом;
- хотя расчет контрольной цифры мог бы вестись как угодно, он также осуществляется по правилу трех шестерок;
- хотя подавляющее число моделей существующих сканеров способно считывать множество штрих-кодов и перенастройка технически проста, введенные в государстве правила требуют, чтобы товары маркировались преимущественно EAN-13.
Замечание 11.
Последнее. Хотя я тут все это понаписал и сам безусловно уверен, что EAN-13 сознательно выполнен в кощунственной и оскорбительной для христиан форме, однако спор по этому поводу считаю безсмысленным и безусловно вредным. Ибо он, главным образом, направлен на то, чтобы отвлечь от гораздо большей опасности - самого факта персональной цифровой кодификации людей, ведущего к новейшему - "цивилизованному" - рабству и осужденного, как преступление против человечества, Нюрнбергским трибуналом.
Вы пишете,"Министерство по налогам и сборам категорически отрицает наличие шестерок"... Да оно отрицает и связь своего 12-значного персонального идентификатора с 12-значным же кодом EAN-13. Точно также это делают и другие разработчики личных кодов в нашей стране. Делают просто потому, что пока не существует закона нумеровать людей и записывать их номера в виде лукавого штрих-кода. Но вот совсем недавно наш президент (а он, конечно же, никогда не врет) пообещал, что "уже очень скоро наши россияне будут ездить в Европу без виз". А такое возможно, только если Россия присоединится к Шенгену, где узаконены и личные коды и их изображение в EAN-13. А в Кананаскисе, в прошлом году, на саммите G-8 прямо говорилось (и Россия к этому присоединилась), что человека по всему миру будут сопровождать данные, записанные в стандартах UN/EDIFACT. Угадайте, кто является полномочным представителем этой организации? - Офисы EAN.
Так что кощунственный код - это только следствие. Тактически его можно даже заменить на время внедрения штрих-кодовых имен каким-нибудь более безобидным, чтобы вернуться к разговору, когда уже номера будут розданы. Как я считал три года назад, что бесконечные демагогические споры о наличии трех шестерок нам специально вбрасываются, чтобы отвлечь внимание от главных нумерационных процессов, так считаю и сейчас.
---------------------------------------------------------
С уважением,
Константин Гордеев mailto: [email protected]
источник здесь