|
A barcode holds continuous information and the meaning of that is decided by those who wrote it. There is no global/common decoding of such string, but only in connection to the product printed on...
I worked with barcodes where there was a separator (like comma) and also with codes without any separation...
Simply there is no on-size-for-all solution when decoding the meaning of a barcode...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Actually, there is, for UCC/EAN128 barcodes - I no longer have a copy, but there is an official spec which describes the barcode, which is broken into a large range of possible fields, including specific ones for price, weight, batch, production dates, serial numbers, and pretty much anything else you might want in a item identifier. The spec weighs around three Kg IIRC ... I've probably still got the Z80 assembler code to generate them from the constituent parts somewhere, but it could take months to find it!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I know GS1-128 and also EPC and I worked with barcodes (as part of a project for warehouse management) - those are standards made for the paper mostly. The problem with GS1 is that it holds a lot of copyrights that makes it almost impossible to use their ideas because of the fear of infringement...
So - one may write a method to interpret GS1 or EPC, but in most cases it will not work. As today, almost every manufacturer has his own system to create codes (and barcodes from them) and it may change even for the same manufacturer from product to product...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
You're not going to find a library for this.
It comes down to simple string manipulation. You get a code from the scanner and you have to break it down into the parts you need. There's nothing magical about this.
|
|
|
|
|
You are saying you get a string of digits (nothing to do with barcodes) and you know the structure of the information in the string. So what exactly is your problem in separating and decoding these fields?
|
|
|
|
|
I don't know exactly what is the structure of the information because it can be different. For example 1 EAN128 code can contains only article number and batch, another one can contains article number with weight and batch, another can contains article with number of pieces and production date etc. There are many possibilities. AI tells what information this string contains and what I need is good algorithm that search for all possible AI and decode string into separate information. I don't want to miss any possibility.
|
|
|
|
|
|
I know all that you send me but like I said - i don't want to miss something and I asked if anyone is using some ready solutions (also paid) that can do this decoding for me.
|
|
|
|
|
If there is already a library in existence for this then Google is the place to look. If Google does not find one then you need to write your own. It's not exactly a difficult problem.
|
|
|
|
|
What you're talking about is using a standardized format to non-standard uses. There isn't going to be a library for this!
If you're going to use an EAN128 code that can have differing fields from one scan to another, you MUST have another field that tells your code which field format is being used for that code. For example:
Layout ProductCode Weight
1 394857394587 12.46
Layout ProductCode Count
2 294579834759 12
Layout ProductCode DateCode Count
3 324875938457 1623 12
You're going to have to write your own library for this, both to generate the barcodes and to read them.
|
|
|
|
|
If you don't know what the layout is supposed to be or how to parse this (using .Substring, for example), how can you confirm that any "library" will do what you want?
|
|
|
|
|
Hello, about ten years ago, I developed my first and only one client app for a barcode scanner, it was a psion workabout scanner, i can't remember how, but I remember that PSION provided an API that allowed me to register my app into the scanner hardware and get the scanning codes as EVENTS instead of use keyboard emulation, the event arguments were a structure containing lot of metadata about the barcode, such as "barcode kind" geometries and so on, the event arguments also provided a raw byte array of scanning data, which I used to parse a bunch of GS-1 logistic labels.
All the above just to say that maybe the hardware manufacturer could provide you the API you need to communicate with their hardware device / driver.
Good luck
|
|
|
|
|
Assuming the program appears to open the form repeated in many places in the program through the following code:
[CODE]
if (agreed conditions the open form 1)
{
Form1 frm = new Form1();
frm.Show();
}
[/CODE]
instead of checking conditions in outside open Form1 form and the opening of Form1 appears many places in the program you want to put conditions inside Form1 it will be difficult to implement, there are certain you know this how ?
|
|
|
|
|
You could, I suppose, implement a static method in the Form class that would check if the correct conditions exist, and then create (and display) the form, but you would still have to call this method from any place where the form should be displayed.
If the conditions could be encapsulated in an event, perhaps it would be possible to create an event handler that would create the form. It all depends on what you are trying to achieve. However, unless the conditions for showing the form are identical in all locations, I see no advantage to using either of these techniques.
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack.
--Winston Churchill
|
|
|
|
|
Add a static method to the Form which checks the conditions, and if they are all fine, creates the instance and displays it. Then all you have to do is call the static method.
So if your condition was for example "number of elements greater than five"
public static Form1 CreateIfNeeded(int count)
{
if (count > 5)
{
Form1 f = new Form1();
f.Show();
return f;
}
return null;
} And call it:
Form1 f = Form1.CreateIfNeeded(MyList.Count);
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
You do not understand my question, I'm asking condition to Open form outside Form and condition to open form inside Form ?
|
|
|
|
|
I am trying to make game that you have 12 random letters and with them you should make longest possible word that exist in ditionary.I want to loop through all labels and every time button is clicked each label separatly stops generating letters,when 12 label stops generating letters timer should stop.How to give same name for all labels?
|
|
|
|
|
It is unclear what do you mean by 'same name' and what do you want to achieve with that 'same name'... Please try to explain with more details, possibly with some code sample...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
I want every time I press button to stop generating letters in each label separatly and when last 12 label stops generating letters timer should stop.
Here is code in VB 6 that does this,in VB 6 all labels have name property lblSlovo
Private Sub lblStartStop_Click()
If Not lblStartStop.Enabled Then Exit Sub
If lblStartStop.Caption = "Start" Then
i = 0
Timor.Enabled = True
lblStartStop.Caption = "Stop"
lblStartStop.Enabled = True
Else
lblSlovo(i).Caption = slova(i)
i = i + 1
If i = 12 Then
txtInput.Enabled = True
lblStartStop.Enabled = False
lblStartStop.Caption = "Start"
Timor.Enabled = False
Vreme.Enabled = True
txtInput.SetFocus
End If
End If
End Sub
I want to convert this in C# ???
|
|
|
|
|
Just to make it readable...
Private Sub lblStartStop_Click()
If Not lblStartStop.Enabled Then Exit Sub
If lblStartStop.Caption = "Start" Then
i = 0
Timor.Enabled = True
lblStartStop.Caption = "Stop"
lblStartStop.Enabled = True
Else
lblSlovo(i).Caption = slova(i)
i = i + 1
If i = 12 Then
txtInput.Enabled = True
lblStartStop.Enabled = False
lblStartStop.Caption = "Start"
Timor.Enabled = False
Vreme.Enabled = True
txtInput.SetFocus
End If
End If
End Sub
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
How to convert this code in c# ? I cannot give same name property to all labels!!!
modified 27-Nov-16 10:01am.
|
|
|
|
|
Create an array (or a List) of Labels, and add the instances to that:
private List<Label> labels = new List<Label();
private int currentLabel = 0;
...
labels.Add(myLabel1);
labels.Add(myLabel2);
labels.Add(myLabel3);
labels.Add(myLabel4);
... Then in your click handler get the current label from the index:
if (currentLabel < labels.Count)
{
Label lab = labels[currentLabel++];
...
}
else
{
... Stop your timer ...
} You can then access the label directly, and do what you want with it.
Your Timer event can also use the labels collection and the index to decide which ones it should be "changing" and which ones it should leave alone.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
How to convert this code from VB6 to C#:
Set rs = Conn.Execute("SELECT DISTINCT Reci FROM " & CStr(Len(r)))
|
|
|
|
|
More to the point, why are you trying to mix code from VB6 with anything?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I want to convert VB code to C# because I want to connect game in VB6 with other games that I made in C#!
|
|
|
|