|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.07.2009, 00:47 | #1 |
Новичок
Джуниор
Регистрация: 24.07.2009
Сообщений: 6
|
Обработка в Ехеле - LUHN и MOD43
Задачка
Требуется обработка а Ехеле. В моей конторе два раза в месяц нужно делать вот такую фичу. Файлы отдаются в типографию, там печатают на их основе штрих-коды (вроде код39), которые мы клеим на продукцию. Как и в чем их считал мой предшественник - не представляю, ничего не осталось. Умные люди подсказали про макросы. Суть такая - в результате этой обработки имеем файл Ехеля, в котором: колонка 1 - числовой ряд - последовательность 15-значных чисел колонка 2 - контрольная сумма от числа колонки 1 по алгоритму LUHN - одна цифра колонка 3 - 16-значное число, полученное слиянием колонок 1 и 2 колонка 4 - контрольная цифра-буква от числа колонки 3 по алгоритму MOD43 колонка 5 - 17-значное число, полученное слиянием колонок 3 и 4 Задача - просчитать колонки 2-5 пример: колонка 1 - 964377409000004 колонка 2 - 7 колонка 3 - 9643774090000047 колонка 4 - H колонка 5 - 9643774090000047H колонка 1 - числовой ряд - 500 номеров (от ...0001 до ...0500), просчет 3 раза по 500 (изменение ряда будет только в 9-ом разряде, в приведенном примере это цифра "9") Меняю 9-ый разряд - заново запускаю макрос. Макросов может быть несколько - для отдельных колонок. Как создать первую колонку - не существенно Как поменять в первой колонке 9-ый разряд - не существенно. Цифры числового ряда от месяца к месяцу меняются. Поискал я в Инете - Что такое LUHN - ГОСТ 50809-95, или тут http://planety-hackeram.ru/showthread.php?t=10440 Пример макроса LUHN тут - Http://www.beachnet.com/~hstiles/cardtype.html (...Here is a Microsoft Excel worksheet) Любопытно - http://www.infostart.ru/profile/22185/projects/2270/ Чекер - http://www.ee.unb.ca/cgi-bin/tervo/luhn.pl Что такое MOD43 - http://en.wikipedia.org/wiki/Code_39 с примером Пример обработки - http://www.dreamincode.net/forums/showtopic25941.htm Последний раз редактировалось Littlesnake; 25.07.2009 в 00:52. |
25.07.2009, 09:31 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а можно вопрос? А зачем Вам отдельно столбцы 2, 3 и 4 ???
ведь Вас интересует только столбец 5 ? так его в макросе и формировать! а ещё лучше - в пользовательской функции... Алгоритмы элементарные, а работу по поиску информации Вы провели просто отличную!!!! у Вас же уже всё необходимое для расчёта есть!! результат во вложении. если кому интересно, реализовано через пользовательскую функцию: Код:
Последний раз редактировалось Serge_Bliznykov; 25.07.2009 в 10:22. |
25.07.2009, 13:25 | #3 |
Новичок
Джуниор
Регистрация: 24.07.2009
Сообщений: 6
|
Нужны именно ВСЕ 5 колонок - именно так
Изюм в том - что полиграфисты при печати почемуто используют ДВЕ колонки - штрих-код колбасят по колонке ПЯТЬ, а хьюман редабле текст - по колонке ТРИ т.е результат - стикерс со штрих-кодом, ниже которого (на том же стикерсе) чепятается число - хьюман редабле текст (человекочитаемый текст). Хотя, в принципе, без колонок 2 и 4 можно обойтись (промежуточные данные, однако), я думаю. За обработку спасибо - как все просто, оказывается Последний раз редактировалось Littlesnake; 25.07.2009 в 13:33. |
25.07.2009, 13:43 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
дальше сами разберётесь?
я бы рекомендовал колонки 2, 3, 4 получать из колонки 5 простыми строковыми формулами (через =ПСТР(...) ) |
25.07.2009, 13:47 | #5 |
Новичок
Джуниор
Регистрация: 24.07.2009
Сообщений: 6
|
Чтото я не въезжаю - сижу смотрю и тихо тупею
Все ж не та у меня квалификация а в Ехеле-2007 это будет работать ? - вопрос глупый, снимается А как запустить эту функцию ? Чего ткнуть? Последний раз редактировалось Littlesnake; 25.07.2009 в 14:08. |
25.07.2009, 14:08 | #6 |
Новичок
Джуниор
Регистрация: 24.07.2009
Сообщений: 6
|
|
25.07.2009, 14:13 | #7 |
Новичок
Джуниор
Регистрация: 24.07.2009
Сообщений: 6
|
Только что - не понял, что сделал - в колонке В появился правильный результат.
При перезагрузке файла LUHN_MOD_example.xls - пишет про "Остановка макроса. Синтаксическая ошибка" |
25.07.2009, 14:36 | #8 |
Новичок
Джуниор
Регистрация: 24.07.2009
Сообщений: 6
|
Так - работает
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка текста | JRcoker | Общие вопросы Delphi | 5 | 31.07.2008 23:35 |
Обработка изображения | Hollander | Мультимедиа в Delphi | 6 | 10.03.2008 14:21 |