Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
39
Task/UPC/Zkl/upc-1.zkl
Normal file
39
Task/UPC/Zkl/upc-1.zkl
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
var lhd=Dictionary(), rhd=Dictionary();
|
||||
[0..].zip(List(
|
||||
"0 0 0 1 1 0 1", //--> "___##_#":0 "###__#_":0
|
||||
"0 0 1 1 0 0 1",
|
||||
"0 0 1 0 0 1 1",
|
||||
"0 1 1 1 1 0 1",
|
||||
"0 1 0 0 0 1 1",
|
||||
"0 1 1 0 0 0 1",
|
||||
"0 1 0 1 1 1 1",
|
||||
"0 1 1 1 0 1 1",
|
||||
"0 1 1 0 1 1 1",
|
||||
"0 0 0 1 0 1 1") //--> "___#_##":9 "###_#__":9
|
||||
).pump(Void,fcn([(n,bs)]){
|
||||
bs-=" ";
|
||||
lhd[bs.translate("01","_#")]=n;
|
||||
rhd[bs.translate("10","_#")]=n;
|
||||
});
|
||||
|
||||
fcn parseBarCode(barcode, one=True){ // --> 12 digits
|
||||
upsideDown:='wrap{ // was I looking at this bar code upside down?
|
||||
if(one and (r:=parseBarCode(barcode.reverse(),False))) return(r);
|
||||
return(False);
|
||||
};
|
||||
|
||||
var [const] start=RegExp(String("_"*9, "+#_#")), tail="_"*7;
|
||||
if(not start.search(barcode)) return(upsideDown());
|
||||
r,idx,d,mark := List(), start.matched[0][1], lhd, "_#_#_";
|
||||
do(2){
|
||||
do(6){
|
||||
if(Void==(z:=d.find(barcode[idx,7]))) return(upsideDown());
|
||||
r.append(z);
|
||||
idx+=7;
|
||||
}
|
||||
if(barcode[idx,5] != mark) return(Void);
|
||||
d,idx,mark = rhd, idx+5, "#_#__";
|
||||
}
|
||||
if(tail!=barcode[idx,7]) return(Void); // 9 trailing blanks? two checked above
|
||||
r
|
||||
}
|
||||
10
Task/UPC/Zkl/upc-2.zkl
Normal file
10
Task/UPC/Zkl/upc-2.zkl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
var upcRE = RegExp(String("_"*9, "+#_#",
|
||||
lhd.keys.concat("|","(",")")*6, "_#_#_",
|
||||
rhd.keys.concat("|","(",")")*6, "#_#", "_"*9)),
|
||||
digits=lhd.copy().extend(rhd);
|
||||
|
||||
fcn parseBarCode2(barcode){ // --> 12 digits
|
||||
if(not (upcRE.search(barcode) or upcRE.search(barcode.reverse()))) return(False);
|
||||
upcRE.matched[1,*] // ( (a,b), "_#_####","_##___#", 10 more digit patterns )
|
||||
.apply(digits.get)
|
||||
}
|
||||
19
Task/UPC/Zkl/upc-3.zkl
Normal file
19
Task/UPC/Zkl/upc-3.zkl
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
barcodes:=
|
||||
#<<<"
|
||||
_________#_#___#_##__#__##_#___##_###_##_###_##_####_#_#_#_##_##__#___#__##__##_###__#_##__##_###_#__#_#_________
|
||||
_________#_#_#___##___##_#_####_#___#_##_#___##_#___##_#_#_#_###__#_###__##__##_###__#_#__###_###__#_#_#_________
|
||||
_________#_#____#_#_#__###__#___#____#_#__#___#____#_#_#_#_##_#___##_#___##_#___##___#_#_####_###_##_#_#_________
|
||||
_________#_#_##__##_##__##___#__#___#__#_###__#_##__##_#_#_#___##_##__#__###_##_##_#___#_####_##_#___#_#_________
|
||||
_________#_#_###_##_#___##_##_###__##__#_##___#___#_##_#_#_###_#__##_##__#____#_###_#__##_##__#______#_#__________
|
||||
__________#_#__#___#_##__##__#___#___#__#_##__##__#___#_#_#_#_####_#__##__#_####_####_#_#__##__#_####_#_#____________
|
||||
_________#_#__#__##__##__#_#___##_##___#_###_##_##___#_#_#_#__#___#___#__#__###_#_#____###__#_#__#___#_#_________
|
||||
_________#_#_#____#_##__##___#__#_##__##__###_#___#__#_#_#_###_##_##_###_##_###_###_##_#__##__###_##_#_#__________
|
||||
_________#_#_###_##___##_#_#_####_#___##_#_####_#_####_#_#_#___#__#_###__#____#_###__#_#____#_###__#_#_#_________
|
||||
_______________#_#_#_####_##___#_####_#_#___##_##_###_####_#_#_#_#__###_#_###__###__#_#_###__#____#_#__###_#_#_________"
|
||||
.split("\n");
|
||||
#<<<
|
||||
|
||||
foreach n,barcode in ([1..].zip(barcodes)){
|
||||
bc:=parseBarCode(barcode);
|
||||
println("%2d: [%s]".fmt(n,bc and bc.concat(" ") or "Not valid"));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue