static public string ConvertUPCAtoUPCE(string text) {
if (text.Length != 12 || !(text.StartsWith("0") || text.StartsWith("1")))
return null;
if (text.Substring(3, 3).Equals("000") || text.Substring(3, 3).Equals("100")
|| text.Substring(3, 3).Equals("200")) {
if (text.Substring(6, 2).Equals("00"))
return text.Substring(0, 1) + text.Substring(1, 2) + text.Substring(8, 3) + text.Substring(3, 1) + text.Substring(11);
}
else if (text.Substring(4, 2).Equals("00")) {
if (text.Substring(6, 3).Equals("000"))
return text.Substring(0, 1) + text.Substring(1, 3) + text.Substring(9, 2) + "3" + text.Substring(11);
}
else if (text.Substring(5, 1).Equals("0")) {
if (text.Substring(6, 4).Equals("0000"))
return text.Substring(0, 1) + text.Substring(1, 4) + text.Substring(10, 1) + "4" + text.Substring(11);
}
else if (text[10] >= '5') {
if (text.Substring(6, 4).Equals("0000"))
return text.Substring(0, 1) + text.Substring(1, 5) + text.Substring(10, 1) + text.Substring(11);
}
return null;
}