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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| public static void ReverseconvertReagentOrCtrCalBarcode()
{
int riVesselNumber = 707;
char rcVialType = '4';
string rsManufNbr = "E21";
DateTime time = new DateTime(2018, 01, 02);
string text_0_2 = time.ToString("MM");
string text_2_2 = time.ToString("yy");
string text_4_5 = int.Parse(rsManufNbr + rcVialType.ToString(), System.Globalization.NumberStyles.HexNumber).ToString().PadLeft(5, '0'); // Reverse ToString("X4") : E214 -> 57876
string text_9_5 = riVesselNumber.ToString().PadLeft(5, '0');
double num2 = Convert.ToDouble(text_0_2 + text_2_2 + text_4_5 + text_9_5); // num2 = 1185787600707
int length = 16;
for (int i = length - 9; i >= 0 ; i--)
{
double exposant = (double)(length - 8 - i - 1);
// Todo ;-)
}
}
public static void convertReagentOrCtrCalBarcode(string sBarCode)
{
int length = sBarCode.Length;
double num2 = 0.0D;
string rsLotId = sBarCode.Substring(8, 8);
for (int i = 0; i < length - 8; i++)
{
int num4 = "!#$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`|}~".IndexOf(sBarCode[i]);
double exposant = (double)(length - 8 - i - 1);
num2 += (double)num4 * Math.Pow(64D, exposant);
// i = 0, num2 = 0.0
// i = 1, num2 = 1168231104512
// i = 2, num2 = 1185410973696
// i = 3, num2 = 1185780072448
// i = 4, num2 = 1185787412480
// i = 5, num2 = 1185787596800
// i = 6, num2 = 1185787600704
// i = 7, num2 = 1185787600707
}
string text = num2.ToString().PadLeft(14, '0');
string textDay = "01";
string textMonth = text.Substring(0, 2);
string textYear = "20" + text.Substring(2, 2);
DateTime time = new DateTime(int.Parse(textYear), int.Parse(textMonth), int.Parse(textDay)).AddMonths(1);
string tmp = text.Substring(4, 5);
string text7 = int.Parse(text.Substring(4, 5)).ToString("X4");
string rsManufNbr = text7.Substring(0, 3);
char rcVialType = text7[3];
int riVesselNumber = int.Parse(text.Substring(9, 5));
} |
Partager