Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 20

Сканер штрихкодов и CoreScanner

18.10.2018, 10:46. Показов 6091. Ответов 29

Студворк — интернет-сервис помощи студентам
Помогите с распознаванием штрихкодов...
По мануалу сделал считывание, оно работает, но там в формате XML выводит кучу мусора.
На сайте производителя есть C# Sample app, и в нем реализована функция декодирования там просто расшифрованный штрихкод без мусора выводится в textbox.
В код смотрел и...ничего не понял)
может кто знает как с этим бороться? Как получить расшифрованный штрихкод?
на скриншоте красным выделен отсканированный штрихкод, остальное лишняя информация касательно сканера, прошивки и типа штрихкода.
Миниатюры
Сканер штрихкодов и CoreScanner  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2018, 10:46
Ответы с готовыми решениями:

Перехват сканирвоания штрихкода сканером штрихкодов
Добрый день. Тут передо мно встала такая задача: написать прогу, которая перехватывает событие считвания сканера штрихкода, но при этом не...

1С 7.7 + Сканер штрихкодов
Задача простая, сканером считывается штрихкод и передается в 1С. Конкретнее: есть пропуск со штрихкодом. при считывании штрихкода надо...

Сканер штрихкодов
Вообщем проблема в том что форма списка не видит внешнего события в событиях формы указана функция вот ее содержимое &НаКлиенте ...

29
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 20
18.10.2018, 14:21  [ТС]
Студворк — интернет-сервис помощи студентам
есть варианты как это превратить в 30914?
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
18.10.2018, 14:27
Lancy,

SeIZVeIZ же написал, что в идеале нужно знать как это было зашифровано.

Если допустить, что там могут быть только символы от 0 до 9, то можно, например, так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private string DecodeDatalabel(string encodedValue)
        {
            string[] dictionary = new string[] {
                "0x30",
                "0x31",
                "0x32",
                "0x33",
                "0x34",
                "0x35",
                "0x36",
                "0x37",
                "0x38",
                "0x39"
            };
            string[] values = encodedValue.Split(' ');
            StringBuilder decodedValue = new StringBuilder(); 
            foreach(string value in values)
            {
                decodedValue.Append(Array.IndexOf(dictionary, value).ToString());
            }
            return decodedValue.ToString();
        }
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 20
18.10.2018, 14:30  [ТС]
meridbt, да, использовать планируется с 4х значными штрихкодами, цифры от 0 до 9...
а если использовать replace? или это не так верно?
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
18.10.2018, 14:48
Лучший ответ Сообщение было отмечено Lancy как решение

Решение

Lancy,

ещё вариант, если ридер использует UTF8

C#
1
2
3
4
5
6
7
8
9
10
private string DatalabelToString(string encodedValue)
        {
            string hexString = encodedValue.Replace("0x", "").Replace(" ", "");
            byte[] bytes = new byte[hexString.Length / 2];
            for (int i = 0; i < bytes.Length; i++)
            {
                bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
            }
            return Encoding.UTF8.GetString(bytes); ;
        }
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
18.10.2018, 14:55
Цитата Сообщение от Lancy Посмотреть сообщение
есть варианты как это превратить в 30914?
C#
1
2
3
var test = "0x33 0x30 0x39 0x31 0x34";
var atest = test.Split(new[] {' '}).Select(item => Convert.ToByte(item, 16)).ToArray();
var decoded = Encoding.GetEncoding(1251).GetString(atest);
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 20
18.10.2018, 14:56  [ТС]
meridbt, сейчас буду пробовать, при таком раскладе мне нужно это?
Миниатюры
Сканер штрихкодов и CoreScanner  
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
18.10.2018, 14:59
Цитата Сообщение от Lancy Посмотреть сообщение
при таком раскладе мне нужно это?
Эта штука к декодированию не относится. Нужно, если событие вызывается в другом потоке.
0
182 / 145 / 94
Регистрация: 30.07.2013
Сообщений: 579
18.10.2018, 15:03
Лучший ответ Сообщение было отмечено Lancy как решение

Решение

Lancy,


C#
1
2
3
4
void OnBarcodeEvent(short eventType, ref string scanData)
        {
            ToLabel(DatatableToString(GetDataLabel(scanData)));
        }
1
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 20
18.10.2018, 15:17  [ТС]
Цитата Сообщение от meridbt Посмотреть сообщение
SeIZVeIZ же написал, что в идеале нужно знать как это было зашифровано.
Если допустить, что там могут быть только символы от 0 до 9, то можно, например, так:
вот что из этого выходит
остальное не работает, вывод такой же как и до этого
Миниатюры
Сканер штрихкодов и CoreScanner  
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 20
18.10.2018, 15:38  [ТС]
Цитата Сообщение от meridbt Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
private string DatalabelToString(string encodedValue)
{
 string hexString = encodedValue.Replace("0x", "").Replace(" ", "");
 byte[] bytes = new byte[hexString.Length / 2];
 for (int i = 0; i < bytes.Length; i++)
 {
 bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
 }
 return Encoding.UTF8.GetString(bytes); ;
}
Цитата Сообщение от meridbt Посмотреть сообщение
void OnBarcodeEvent(short eventType, ref string scanData)
C#
1
2
3
{
 ToLabel(Data[B]label[/B]ToString(GetDataLabel(scanData)));
 }
вот так работает

Добавлено через 10 минут
Вот код, который работает, всем спасибо!!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void OnBarcodeEvent(short eventType, ref string scanData)
        {
            ToLabel(DatalabelToString(GetDataLabel(scanData)));
        }
        private string DatalabelToString(string encodedValue)
        {
            string hexString = encodedValue.Replace("0x", "").Replace(" ", "");
            byte[] bytes = new byte[hexString.Length / 2];
            for (int i = 0; i < bytes.Length; i++)
            {
                bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
            }
            return Encoding.UTF8.GetString(bytes); ;
        }
 
        private string GetDataLabel(string xmlText)
        {
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(xmlText);
            var element = xml.SelectSingleNode("outArgs/arg-xml/scandata/datalabel");
            return element.InnerText;
        }
 
        private void ToLabel(string text)
        {
            if (InvokeRequired)
                Invoke((Action<string>)ToLabel, text);
            else
                labelScan.Text = text;
        }

Особая благодарность meridbt
P.S. оставил код, может кому пригодится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2018, 15:38

VirtualTreeView + сканер Штрихкодов
Здравствуйте. Использую Delphi XE 2 и VirtualTreeView. При использовании сканера штрихкода honeywell 1250g + VirtualTreeView фокус с...

STM32F4 + Клавиатура или Сканер штрихкодов
Вчера на работе списали сканер штрих кодов, работает на USB: http://img02.slomdo.ru/images_slomdoru/ ... ronezh.jpg Вот думаю к...

Сканер Штрихкодов в разрыв клавы + терминал
Добрый день. Ситуация такая есть 1С 7.7 Торговый Дом 5.0 Терминальная Windows 2000 3 Компьютера работают в терминале и пользуются...

USB сканер штрихкодов, отловить вставку
Добрый день, есть сканер штрихкодов, все казалось бы просто. В текстареа ставишь курсор, кликаешь сканером, штрихкод падает в текстареа. ...

Сканер IP - Адресов, Порт - сканер (в локальной сети)
Доброе время суток) Написана программа для сканирования портов (указал диапазон 5900 - 5906), на данный момент программа работает только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru