This commit is contained in:
2026-03-31 12:11:37 +05:00
parent 0a6acc6bce
commit 6500580d75
14 changed files with 632 additions and 10 deletions

View File

@@ -38,7 +38,7 @@ namespace ConsoleApp1
"6A12345678123456", "7A12345678123456", "6F12345678123456", "7E12345678123456", "6G12345678123456", // Австралия, Новая Зеландия
// --- РЕДКИЕ / КАЗАХСТАН ---
"KS112345678123456", "KZC12345678123456", "Z1B12345678123456", "Z5S12345678123456", "X7L12345678123456" // Казахстан, Литва, Renault (РФ)
"KS112345678123456", "KZC12345678123456", "Z1B12345678123456", "Z5S12345678123456", "JHMRE485081234567" // Казахстан, Литва, Renault (РФ)
};
@@ -71,7 +71,7 @@ namespace ConsoleApp1
"M041MM45", "H042HH46", "O043OO47", "P044PP48", "C045CC49", "T046TT50", "Y047YY51", "X048XX52",
"A100AA177", "B200BB197", "E300EE199", "M999MP159"
};
/*
int i = 0;
int j = 0;
foreach (string v in testVins)
@@ -87,9 +87,9 @@ namespace ConsoleApp1
}
Console.WriteLine($"Успешно: {i}");
Console.WriteLine($"Не успешно: {j}");
Console.ReadLine();*/
Console.ReadLine();
/*
int i = 0;
int j = 0;
foreach (string v in testMarks)
@@ -123,7 +123,7 @@ namespace ConsoleApp1
Console.WriteLine($"Успешно: {i}");
Console.WriteLine($"Не успешно: {j}");
Console.ReadLine();
Console.ReadLine();*/
}
}
}

View File

@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35919.96 d17.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebugAppWPF", "DebugAppWPF\DebugAppWPF.csproj", "{7A6BC548-DBAC-4958-9795-D288317DF885}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7A6BC548-DBAC-4958-9795-D288317DF885}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A6BC548-DBAC-4958-9795-D288317DF885}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A6BC548-DBAC-4958-9795-D288317DF885}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A6BC548-DBAC-4958-9795-D288317DF885}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {2ADD1ECC-7EA5-406F-9795-2B97607EC22A}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

View File

@@ -0,0 +1,9 @@
<Application x:Class="DebugAppWPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DebugAppWPF"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace DebugAppWPF
{
/// <summary>
/// Логика взаимодействия для App.xaml
/// </summary>
public partial class App : Application
{
}
}

View File

@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{7A6BC548-DBAC-4958-9795-D288317DF885}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>DebugAppWPF</RootNamespace>
<AssemblyName>DebugAppWPF</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<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.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="VIN-LIB">
<HintPath>..\..\VIN-LIB\VIN-LIB\bin\Release\VIN-LIB.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,84 @@
<Window x:Class="DebugAppWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DebugAppWPF"
mc:Ignorable="d"
Title="MainWindow" Height="584" Width="800">
<Grid>
<TabControl x:Name="MainTabs" SelectionChanged="MainTabs_SelectionChanged">
<TabItem Header="Работа с VIN">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="320"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBlock Text="Ввод VIN:" FontWeight="Bold" Margin="0,0,0,5"/>
<TextBox x:Name="MainVinInput" FontSize="16" Margin="0,0,0,10" CharacterCasing="Upper"/>
<Button Content="CheckVIN" Click="BtnCheckVin_Click" Margin="0,2"/>
<Button Content="GetVINCountry" Click="BtnGetCountry_Click" Margin="0,2"/>
<Button Content="GetTransportYear" Click="BtnGetYear_Click" Margin="0,2"/>
</StackPanel>
<ListBox x:Name="VinLog" Grid.Column="1" Margin="10,0,0,0" Background="#F9F9F9"/>
</Grid>
</TabItem>
<TabItem Header="Работа с Номерами (Mark)">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Grid.Column="0" Margin="0,0,10,0">
<GroupBox Header="Метод CheckMark" Margin="0,0,0,10" Padding="5">
<StackPanel>
<TextBox x:Name="MarkInput" Margin="0,2" CharacterCasing="Upper"/>
<Button Content="CheckMark" Click="BtnCheckMark_Click"/>
</StackPanel>
</GroupBox>
<GroupBox Header="Метод GetNextMarkAfter" Margin="0,0,0,10" Padding="5">
<StackPanel>
<TextBlock Text="Текущий номер" FontSize="10"/>
<TextBox x:Name="NextMarkInput" Margin="0,2" CharacterCasing="Upper"/>
<Button Content="GetNextMarkAfter" Click="BtnNextMark_Click"/>
</StackPanel>
</GroupBox>
<GroupBox Header="Метод GetNextMarkAfterInRange" Margin="0,0,0,10" Padding="5">
<StackPanel>
<TextBlock Text="Предыдущий" FontSize="10"/>
<TextBox x:Name="RangePrev" Margin="0,2" CharacterCasing="Upper"/>
<TextBlock Text="Старт" FontSize="10"/>
<TextBox x:Name="RangeStart" Margin="0,2" CharacterCasing="Upper"/>
<TextBlock Text="Конец" FontSize="10"/>
<TextBox x:Name="RangeEnd" Margin="0,2" CharacterCasing="Upper"/>
<Button Content="GetNextMarkAfterInRange" Click="BtnNextInRange_Click"/>
</StackPanel>
</GroupBox>
<GroupBox Header="Метод GetCombinationsCountInRange" Margin="0,0,0,10" Padding="5">
<StackPanel>
<TextBlock Text="От" FontSize="10"/>
<TextBox x:Name="CountStart" Margin="0,2" CharacterCasing="Upper"/>
<TextBlock Text="До" FontSize="10"/>
<TextBox x:Name="CountEnd" Margin="0,2" CharacterCasing="Upper"/>
<Button Content="GetCombinationsCountInRange" Click="BtnCountCombinations_Click"/>
</StackPanel>
</GroupBox>
</StackPanel>
</ScrollViewer>
<ListBox x:Name="MarkLog" Grid.Column="1"/>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace DebugAppWPF
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MainTabs_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (VinLog != null) VinLog.Items.Clear();
if (MarkLog != null) MarkLog.Items.Clear();
}
private void BtnCheckVin_Click(object sender, RoutedEventArgs e)
{
VinLog.Items.Clear();
string vin = MainVinInput.Text.Trim();
bool result = VIN_LIB.VIN.CheckVIN(vin);
VinLog.Items.Add($"Метод: CheckVIN");
VinLog.Items.Add($"Результат: {(result ? "Верный" : "Не верный")}");
}
private void BtnGetCountry_Click(object sender, RoutedEventArgs e)
{
VinLog.Items.Clear();
string vin = MainVinInput.Text.Trim();
string country = VIN_LIB.VIN.GetVINCountry(vin);
VinLog.Items.Add($"Метод: GetVINCountry");
VinLog.Items.Add($"Страна: {country}");
}
private void BtnGetYear_Click(object sender, RoutedEventArgs e)
{
VinLog.Items.Clear();
string vin = MainVinInput.Text.Trim();
int year = VIN_LIB.VIN.GetTransportYear(vin);
VinLog.Items.Add($"Метод: GetTransportYear");
VinLog.Items.Add($"Год: {(year == 0 ? "Не определен" : year.ToString())}");
}
private void BtnCheckMark_Click(object sender, RoutedEventArgs e)
{
MarkLog.Items.Clear();
string mark = MarkInput.Text.Trim();
bool result = REG_MARK_LIB.REG_MARK.CheckMark(mark);
MarkLog.Items.Add($"Метод: CheckMark");
MarkLog.Items.Add($"Знак: {mark}");
MarkLog.Items.Add($"Результат: {(result ? "Верный" : "Не верный")}");
}
private void BtnNextMark_Click(object sender, RoutedEventArgs e)
{
MarkLog.Items.Clear();
string currentMark = NextMarkInput.Text.Trim();
string nextMark = REG_MARK_LIB.REG_MARK.GetNextMarkAfter(currentMark);
MarkLog.Items.Add($"Метод: GetNextMarkAfter");
MarkLog.Items.Add($"Текущий: {currentMark}");
MarkLog.Items.Add($"Следующий: {nextMark}");
}
private void BtnNextInRange_Click(object sender, RoutedEventArgs e)
{
MarkLog.Items.Clear();
string prev = RangePrev.Text.Trim();
string start = RangeStart.Text.Trim();
string end = RangeEnd.Text.Trim();
string result = REG_MARK_LIB.REG_MARK.GetNextMarkAfterInRange(prev, start, end);
MarkLog.Items.Add($"Метод: GetNextMarkAfterInRange");
MarkLog.Items.Add($"Результат: {result}");
}
private void BtnCountCombinations_Click(object sender, RoutedEventArgs e)
{
MarkLog.Items.Clear();
string start = CountStart.Text.Trim();
string end = CountEnd.Text.Trim();
int count = REG_MARK_LIB.REG_MARK.GetCombinationsCountInRange(start, end);
MarkLog.Items.Add($"Метод: GetCombinationsCountInRange");
MarkLog.Items.Add($"Кол-во комбинаций: {count}");
}
}
}

View File

@@ -0,0 +1,52 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// Общие сведения об этой сборке предоставляются следующим набором
// набор атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
// связанные со сборкой.
[assembly: AssemblyTitle("DebugAppWPF")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
[assembly: AssemblyProduct("DebugAppWPF")]
[assembly: AssemblyCopyright("Copyright © HP Inc. 2026")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// из модели COM, установите атрибут ComVisible для этого типа в значение true.
[assembly: ComVisible(false)]
//Чтобы начать создание локализуемых приложений, задайте
//<UICulture>CultureYouAreCodingWith</UICulture> в файле .csproj
//в <PropertyGroup>. Например, при использовании английского (США)
//в своих исходных файлах установите <UICulture> в en-US. Затем отмените преобразование в комментарий
//атрибута NeutralResourceLanguage ниже. Обновите "en-US" в
//строка внизу для обеспечения соответствия настройки UICulture в файле проекта.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //где расположены словари ресурсов по конкретным тематикам
//(используется, если ресурс не найден на странице,
// или в словарях ресурсов приложения)
ResourceDictionaryLocation.SourceAssembly //где расположен словарь универсальных ресурсов
//(используется, если ресурс не найден на странице,
// в приложении или в каких-либо словарях ресурсов для конкретной темы)
)]
// Сведения о версии для сборки включают четыре следующих значения:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Номер редакции
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код был создан программным средством.
// Версия среды выполнения: 4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
// код создан повторно.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DebugAppWPF.Properties
{
/// <summary>
/// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
/// </summary>
// Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
// класс с помощью таких средств, как ResGen или Visual Studio.
// Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
// с параметром /str или заново постройте свой VS-проект.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DebugAppWPF.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Переопределяет свойство CurrentUICulture текущего потока для всех
/// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DebugAppWPF.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -115,7 +115,6 @@ namespace REG_MARK_LIB
}
private static long GetMarkIndex(string mark)
{
// Извлекаем части: A 123 BC 77
char l1 = mark[0];
int num = int.Parse(mark.Substring(1, 3));
char l2 = mark[4];
@@ -126,14 +125,11 @@ namespace REG_MARK_LIB
int i2 = Array.IndexOf(letters, l2);
int i3 = Array.IndexOf(letters, l3);
// Считаем вес номера внутри региона
// Порядок множителей (1000, 12) определяет "скорость" вращения символов
long index = num
+ (long)i1 * 1000
+ (long)i3 * 1000 * 12
+ (long)i2 * 1000 * 12 * 12;
// Добавляем вес региона (в одном регионе 12*12*12*1000 = 1 728 000 номеров)
return index + (long)region * 1728000;
}
@@ -144,7 +140,6 @@ namespace REG_MARK_LIB
long index1 = GetMarkIndex(mark1.ToUpper());
long index2 = GetMarkIndex(mark2.ToUpper());
// Возвращаем разницу (включая обе границы)
return (int)Math.Abs(index2 - index1) + 1;
}
}