- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
class MakeBARCODE
{
public static string MakeEAN13(long prefix, long code)
{
//В случае если префикс или код слишком большие то будет выдана ошибка:
string result = "ERROR_TOOLONG";
if ((prefix < 100) && (code < 10000000000))
{
//Получаем строку символов (цифр).
long all_code = prefix * 100000000000 + code;
string nabor = all_code.ToString();
//Сумма по чётным позициям.
int count_chet = int.Parse(nabor[1].ToString()) + int.Parse(nabor[3].ToString()) + int.Parse(nabor[5].ToString()) + int.Parse(nabor[7].ToString()) + int.Parse(nabor[9].ToString()) + int.Parse(nabor[11].ToString());
//Сумма по нечётным позициям.
int count_nechet = int.Parse(nabor[0].ToString()) + int.Parse(nabor[2].ToString()) + int.Parse(nabor[4].ToString()) + int.Parse(nabor[6].ToString()) + int.Parse(nabor[8].ToString()) + int.Parse(nabor[10].ToString());
//Контрольная сумма и контрольный разряд.
int control_summ = count_chet * 3 + count_nechet;
int ostatok = control_summ % 10;
if (!(ostatok == 0))
{
ostatok = 10 - ostatok;
}
result = nabor + ostatok.ToString();
}
return result;
}
}
Наткнулся сегодня в интернетах на алгоритм расчета контрольной суммы EAN.
guest 01.09.2012 06:59 # +2
vistefan 01.09.2012 08:18 # +8
Где здесь C++, @kovyl2404?
kovyl2404 01.09.2012 19:30 # +1
Lure Of Chaos 02.09.2012 10:17 # 0
3.14159265 03.09.2012 14:49 # +2
roman-kashitsyn 01.09.2012 22:36 # 0
обоймы
absolut 02.09.2012 21:32 # +3
Steve_Brown 03.09.2012 11:35 # 0
kovyl2404 03.09.2012 13:32 # 0
kovyl2404 03.09.2012 13:33 # 0
bormand 03.09.2012 15:01 # +1
Steve_Brown 03.09.2012 15:11 # +1
http://ideone.com/OAC61 - а это уже все равно не так кратко и наглядно.
LispGovno 03.09.2012 14:35 # +3
3.14159265 03.09.2012 15:12 # +3
3.14159265 03.09.2012 15:13 # +5
LispGovno 03.09.2012 15:16 # +2
Steve_Brown 03.09.2012 16:00 # +1