public override CodedValueCollection GetCodes(string value) { var v = new StringBuilder(); foreach (char item in value.ToCharArray()) { v.Append(AsciiEncoder.Lookup(item)); } return(base.GetCodes(v.ToString())); }
public override CodedValueCollection GetCodes(string value) { var codes = new CodedValueCollection(); foreach (char item in value.ToCharArray()) { if (item == ' ') { codes.Add(38); } else if (item == '$') { codes.Add(39); } else if (item == '/') { codes.Add(40); } else if (item == '+') { codes.Add(41); } else if (item == '%') { codes.Add(42); } else if (item >= '0' && item <= '9') { codes.Add(item - 48); } else { var tmp = AsciiEncoder.Lookup(item); switch (tmp[0]) { case '$': codes.Add(SHIFT1); codes.Add(tmp[1] - 55); break; case '%': codes.Add(SHIFT2); codes.Add(tmp[1] - 55); break; case '/': codes.Add(SHIFT3); codes.Add(tmp[1] - 55); break; case '+': codes.Add(SHIFT4); codes.Add(tmp[1] - 55); break; default: codes.Add(tmp[0] - 55); break; } } } codes.Insert(0, LIMIT); codes.Add(LIMIT); codes.Add(TERMINATOR); return(codes); }