Для тех кто работает с Штрих кодами

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Волкер
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 21.10.2002 (Пн) 15:59
Откуда: Russia

Для тех кто работает с Штрих кодами

Сообщение Волкер » 11.06.2003 (Ср) 8:07

процедурка преобразования цифирек в последовательность знаков печатаемую как штрих код EAN8/EAN13

Волкер
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 21.10.2002 (Пн) 15:59
Откуда: Russia

Сообщение Волкер » 11.06.2003 (Ср) 8:22

Public Sub GetBarCode(BarCode As String)
Dim SymbMass(1 To 10, 1 To 6) As Boolean

SymbMass(1, 1) = False
SymbMass(1, 2) = False
SymbMass(1, 3) = False
SymbMass(1, 4) = False
SymbMass(1, 5) = False
SymbMass(1, 6) = False
SymbMass(2, 1) = False
SymbMass(2, 2) = False
SymbMass(2, 3) = True
SymbMass(2, 4) = False
SymbMass(2, 5) = True
SymbMass(2, 6) = True
SymbMass(3, 1) = False
SymbMass(3, 2) = False
SymbMass(3, 3) = True
SymbMass(3, 4) = True
SymbMass(3, 5) = False
SymbMass(3, 6) = True
SymbMass(4, 1) = False
SymbMass(4, 2) = False
SymbMass(4, 3) = True
SymbMass(4, 4) = True
SymbMass(4, 5) = True
SymbMass(4, 6) = False
SymbMass(5, 1) = False
SymbMass(5, 2) = True
SymbMass(5, 3) = False
SymbMass(5, 4) = False
SymbMass(5, 5) = True
SymbMass(5, 6) = True
SymbMass(6, 1) = False
SymbMass(6, 2) = True
SymbMass(6, 3) = True
SymbMass(6, 4) = False
SymbMass(6, 5) = False
SymbMass(6, 6) = True
SymbMass(7, 1) = False
SymbMass(7, 2) = True
SymbMass(7, 3) = True
SymbMass(7, 4) = True
SymbMass(7, 5) = False
SymbMass(7, 6) = False
SymbMass(8, 1) = False
SymbMass(8, 2) = True
SymbMass(8, 3) = False
SymbMass(8, 4) = True
SymbMass(8, 5) = False
SymbMass(8, 6) = True
SymbMass(9, 1) = False
SymbMass(9, 2) = True
SymbMass(9, 3) = False
SymbMass(9, 4) = True
SymbMass(9, 5) = True
SymbMass(9, 6) = False
SymbMass(10, 1) = False
SymbMass(10, 2) = True
SymbMass(10, 3) = True
SymbMass(10, 4) = False
SymbMass(10, 5) = True
SymbMass(10, 6) = False


Dim Line1, Line2, Line3, Line4 As String
Dim FirstSymb, i As Integer
Dim Result As String

Line1 = "#$%& ()*+,"
Line2 = "0123456789"
Line3 = "ABCDEFGHIJ"
Line4 = "abcdefghij"

If Len(BarCode) = 8 Then
Result = "!"
For i = 1 To 4
Result = Result + Mid(Line2, Val(Mid(BarCode, i, 1)) + 1, 1)
Next
Result = Result + "-"
For i = 5 To 8
Result = Result + Mid(Line4, Val(Mid(BarCode, i, 1)) + 1, 1)
Next
Result = Result + "!"
End If
If Len(BarCode) = 13 Then
FirstSymb = Val(Mid(BarCode, 1, 1)) + 1
Result = Mid(Line1, FirstSymb, 1) + "!"
For i = 2 To 7
If SymbMass(FirstSymb, i - 1) Then
Result = Result + Mid(Line3, Val(Mid(BarCode, i, 1)) + 1, 1)
Else:
Result = Result + Mid(Line2, Val(Mid(BarCode, i, 1)) + 1, 1)
End If
Next
Result = Result + "-"
For i = 8 To 13
Result = Result + Mid(Line4, Val(Mid(BarCode, i, 1)) + 1, 1)
Next
Result = Result + "!"
End If
If (Len(BarCode) <> 13) Or (Len(BarCode <> 8)) Then
Result = BarCode
End If
End Sub

amelina
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 26.11.2003 (Ср) 19:39
Откуда: Москва

Сообщение amelina » 12.03.2004 (Пт) 15:29

Как юзать сие??

Ну равно "9785779......" = "#$%&()*......", ну и что?..

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.03.2004 (Пт) 16:16

Чтобы это юзать, нужно чтобы были установлены соответствующие фонты. Если не ошибаюсь, такие фонты распространяются с отчетами 1С (для налоговой, им в этом году взбрело в голову печатать штрих-коды на справках о доходах).
Lasciate ogni speranza, voi ch'entrate.

DenB
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 11.03.2004 (Чт) 21:44

Сообщение DenB » 14.03.2004 (Вс) 0:33

:shock:
А почему не компонент навесной?
Нример от Marbry...

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Re: Для тех кто работает с Штрих кодами

Сообщение asharky » 26.04.2007 (Чт) 18:09

http://code128.narod.ru/ - полезность.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 02.09.2007 (Вс) 18:21

За это время ни у кого не появлось алгоритма создания ш/к без шрифта? Линиями? Нужен EAN13.. Кажись нашел на C#, придется переводить - может, у кого готовый есть?
label:
cli
jmp label

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.09.2007 (Вс) 19:19

Рекомендую не страдать фигнёй и юзать шрифты (коих есть, в т.ч. бесплатных).
Ещё один вариант -- использовать команды термального принтера, который сам напечает штрихкод любого типа.
Вариант с картинкой, на самом деле, самый неудобный. Почему за него держимся?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 02.09.2007 (Вс) 19:40

Не держимся.. Просто интересно =)
Шрифт есть, и с ним все прекрасно работает, но..
Мне, например, нафих не нужны цифирки.. И высота нужна миллиметров пять. А со шрифтом - полтора сантиметра.
Вот и приходится закрашивать лишнее - рисовать поверх белые прямоугольники =)

Правда, если это будет не шрифт, а именно рисование - придется переделывать полсофтины, и весь модуль печати.. Но суть не в этом =)
label:
cli
jmp label

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.09.2007 (Вс) 19:42

Найди шрифты без цифирок (есть и такие, и такие).
Найди шрифты другой высоты. Если не можешь найти, скачай пробную версию любого шрифтового редактора и сделай себе несколько версий шрифта с разными высотами полосок. Я так делал, замечательно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 02.09.2007 (Вс) 21:57

А ведь разумная идея... Насчет редактора шрифтов.
Попробую свой EanBwrP36Tt переделать. =)
label:
cli
jmp label

asharky
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 22.06.2004 (Вт) 0:39
Откуда: Батоны-ларьки-поребрики...

Сообщение asharky » 02.09.2007 (Вс) 22:01

iGrok писал(а):Не держимся.. Просто интересно =)
....
Правда, если это будет не шрифт, а именно рисование - придется переделывать полсофтины, и весь модуль печати.. Но суть не в этом =)
Это не "работа со штрих-кодами". Это мазохизм ;)
В культурной столице проститутки берут книгами...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 02.09.2007 (Вс) 22:32

)))
label:
cli
jmp label

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 03.09.2007 (Пн) 8:16

А кто юзает ActiveReports может вообще не заморачиваться - там родной контрол есть на данную тему...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 44

    TopList