Second push

This commit is contained in:
GitLab-Admin
2026-03-31 09:52:37 +05:00
parent e1f9fc2024
commit 147acc195d
3 changed files with 69 additions and 20 deletions

View File

@@ -33,6 +33,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="REG_MARK_LIB">
<HintPath>..\..\REG_MARK_LIB\REG_MARK_LIB\bin\Debug\REG_MARK_LIB.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIN_LIB;
using REG_MARK_LIB;
namespace ConsoleApp1
{
@@ -42,25 +43,36 @@ namespace ConsoleApp1
"KS112345678123456", "XWB12345678123456", "TMB12345678123456", "KZC12345678123456", "XW812345678123456",
"3HG12345678123456", "8AW12345678123456", "Z1B12345678123456", "Z5S12345678123456", "VF112345678123456"
};
string[] testMarks = {
// 1. Последовательная серия (проверка инкремента цифр)
"A001AA77", "A002AA77", "A003AA77", "A010AA77", "A099AA77", "A100AA77", "A500AA77", "A998AA77", "A999AA77",
// 2. Граничные переходы букв (A999AA -> B001AA)
"B999AA77", "X999AA77", "A999BA77", "A999XA77", "A999AX77", "X999XX77",
// 3. Разные регионы (2 и 3 знака)
"E555KK01", "M100HH02", "B777BB16", "T001TT99", "A123AA102", "X888XX177", "K001MK799", "C500CC190",
// 4. Группа случайных номеров для массовой проверки
"K123AB77", "M456BC77", "H789CE77", "P012EK77", "C345KH77", "T678HM77", "Y901MO77", "O234OP77",
"A567PC77", "B890CT77", "E111TY77", "K222YX77", "M333XA77", "H444XB77", "P555XE77", "C666XK77",
"T777XM77", "Y888XH77", "O999XO77", "A001XP77", "B010XC77", "E100XT77", "K200XY77", "M300XX77",
// 5. Номера с разными буквами (все 12 разрешенных)
"A111AA11", "B222BB22", "E333EE33", "K444KK44", "M555MM55", "H666HH66", "O777OO77", "P888PP88",
"C999CC99", "T100TT01", "Y200YY02", "X300XX03",
// 6. Еще немного из разных регионов (от 04 до 197)
"A001AA04", "B002BB05", "E003EE06", "K004KK07", "M005MM08", "H006HH09", "O007OO10", "P008PP11",
"C009CC12", "T010TT13", "Y011YY14", "X012XX15", "A013AA16", "B014BB17", "E015EE18", "K016KK19",
"M017MM21", "H018HH22", "O019OO23", "P020PP24", "C021CC25", "T022TT26", "Y023YY27", "X024XX28",
"A025AA29", "B026BB30", "E027EE31", "K028KK32", "M029MM33", "H030HH34", "O031OO35", "P032PP36",
"C033CC37", "T034TT38", "Y035YY39", "X036XX40", "A037AA41", "B038BB42", "E039EE43", "K040KK44",
"M041MM45", "H042HH46", "O043OO47", "P044PP48", "C045CC49", "T046TT50", "Y047YY51", "X048XX52",
"A100AA177", "B200BB197", "E300EE199", "K400KK777"
};
/*
string vin = "Z9111070060057018";
string Euvin = "XW8AG4NH7KK108004";
if (VIN_LIB.VIN.CheckVIN(Euvin))
Console.WriteLine("Вин годен");
else
Console.WriteLine("Вин не годен");
Console.WriteLine(VIN_LIB.VIN.GetVINCountry(vin));
Console.WriteLine(VIN_LIB.VIN.GetTransportYear(vin));
var a = VIN_LIB.VIN.GetVinCountries();
int i = 0;
foreach ( var c in a)
{
i++;
Console.WriteLine($"Ключ: {c.Key} Страна: {c.Value} Строка: {i}");
}*/
int i = 0;
int j = 0;
foreach (string v in testVins)
@@ -76,7 +88,41 @@ namespace ConsoleApp1
Console.WriteLine($"Успешно: {i}");
Console.WriteLine($"Не успешно: {j}");
Console.ReadLine();
*/
int i = 0;
int j = 0;
foreach (string v in testMarks)
{
bool isValid = REG_MARK_LIB.REG_MARK.CheckMark(v);
if (isValid)
{
i++;
// Генерируем границу: берем текущую серию (буквы) и ставим 999
// Пример: если v = "A123BC77", то rangeEnd будет "A999BC77"
string rangeEnd = $"{v[0]}999{v.Substring(4)}";
string nextMark = REG_MARK_LIB.REG_MARK.GetNextMarkAfter(v);
// В качестве rangeStart для метода логично передать сам v или следующий за ним
string nextInRange = REG_MARK_LIB.REG_MARK.GetNextMarkAfterInRange(v, v, rangeEnd);
Console.WriteLine($"Номер ТС: Верный");
Console.WriteLine($"Текущая марка: {v} \t Следующая марка: {nextMark}");
Console.WriteLine($"Интервал до {rangeEnd}: {nextInRange}");
}
else
{
j++;
Console.WriteLine($"Номер ТС: Не верный ({v})");
}
Console.WriteLine("--------------------------------------------------");
}
Console.WriteLine($"Успешно: {i}");
Console.WriteLine($"Не успешно: {j}");
Console.ReadLine();
}
}
}

View File

@@ -23,7 +23,7 @@ namespace REG_MARK_LIB
"174", "774", "177", "197", "199", "777", "797", "799", "178", "198", "778", "180", "181", "184", "185", "186", "196"
};
private static readonly char[] letters = { 'A', 'B', 'E', 'K', 'M', 'H', 'O', 'P', 'C', 'T', 'Y', 'X' };
private static string pattern = @"^[ABEKMHOPCTYX]\d{3}[ABEKMHOPCTYX]{2}\d{2,3}$";
private static string pattern = @"^[ABEKMHOPCTYXАВЕКМНОРСТУХ]\d{3}[ABEKMHOPCTYXАВЕКМНОРСТУХ]{2}\d{2,3}$";
public static bool CheckMark(string mark)
{
if (string.IsNullOrEmpty(mark))