20211215
This commit is contained in:
parent
6be103f92f
commit
ac2909084d
@ -1,33 +1,48 @@
|
|||||||
namespace anbs_cp;
|
namespace anbs_cp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Форматирует число элементов в понятную строку
|
/// Форматирует число элементов в понятную строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CountFormatter: IValueFormatter
|
public sealed class CountFormatter : IValueFormatter
|
||||||
{
|
{
|
||||||
#region Cвойства класса
|
#region Cвойства класса
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Имена чисел (тысяч, миллионов, миллиардов и т.п.)
|
/// Имена чисел (тысяч, миллионов, миллиардов и т.п.)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] CountNames { get; set; } = { "", "тыс.", "млн.", "млрд." };
|
public string[] CountNames { get; set; } = {"", "тыс.", "млн.", "млрд."};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Знаков после запятой
|
/// Знаков после запятой
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public byte DecimalPlaces { get; set; } = 1;
|
public byte DecimalPlaces { get; set; } = 1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Делители чисел
|
/// Делители чисел
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long[] Delimeters { get; set; } = { 1000, 1000000, 1000000000 };
|
public long[] Delimeters { get; set; } = {1000, 1000000, 1000000000};
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Реализация интерфейса
|
#region Реализация интерфейса
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Реализация интерфейса
|
/// Реализация интерфейса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] ValueNames { get => CountNames; set => CountNames = value; }
|
public string[] ValueNames
|
||||||
|
{
|
||||||
|
get => CountNames;
|
||||||
|
set => CountNames = value;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Реализация интерфейса
|
/// Реализация интерфейса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long[] MaxSizes { get => Delimeters; set => Delimeters = value; }
|
public long[] MaxSizes
|
||||||
|
{
|
||||||
|
get => Delimeters;
|
||||||
|
set => Delimeters = value;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
@ -1,48 +1,61 @@
|
|||||||
namespace anbs_cp;
|
namespace anbs_cp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Форматирует размер файла/папки в понятную строку
|
/// Форматирует размер файла/папки в понятную строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FileSizeFormatter: IValueFormatter
|
public class FileSizeFormatter : IValueFormatter
|
||||||
{
|
{
|
||||||
#region Cвойства класса
|
#region Cвойства класса
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Имена размеров (байт, килобайт, мегабайт, гигабайт и террабайт)
|
/// Имена размеров (байт, килобайт, мегабайт, гигабайт и террабайт)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] SizeNames { get; set; } = { "Байт", "Кб", "Мб", "Гб", "Тб" };
|
public string[] SizeNames { get; set; } = {"Байт", "Кб", "Мб", "Гб", "Тб"};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Знаков после запятой
|
/// Знаков после запятой
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public byte DecimalPlaces { get; set; } = 2;
|
public byte DecimalPlaces { get; set; } = 2;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Максимально байт (далее идут Кбайты)
|
/// Максимально байт (далее идут Кбайты)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long ByteMax { get; set; } = 1024;
|
public long ByteMax { get; set; } = 1024;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Максимально Кбайт (далее идут Мбайты)
|
/// Максимально Кбайт (далее идут Мбайты)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long KByteMax { get; set; } = 1048576;
|
public long KByteMax { get; set; } = 1048576;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Максимально Мбайт (далее идут Гбайты)
|
/// Максимально Мбайт (далее идут Гбайты)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long MByteMax { get; set; } = 1073741824;
|
public long MByteMax { get; set; } = 1073741824;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Максимально Гбайт (далее идут Тбайты)
|
/// Максимально Гбайт (далее идут Тбайты)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long GByteMax { get; set; } = 1099511627776;
|
public long GByteMax { get; set; } = 1099511627776;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Реализация интерфейса
|
#region Реализация интерфейса
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Реализация интерфейса
|
/// Реализация интерфейса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] ValueNames { get => SizeNames; set => SizeNames = value; }
|
public string[] ValueNames
|
||||||
|
{
|
||||||
|
get => SizeNames;
|
||||||
|
set => SizeNames = value;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Реализация интерфейса
|
/// Реализация интерфейса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long[] MaxSizes
|
public long[] MaxSizes
|
||||||
{
|
{
|
||||||
get => new long[] { ByteMax, KByteMax, MByteMax, GByteMax };
|
get => new[] {ByteMax, KByteMax, MByteMax, GByteMax};
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
ByteMax = value[0];
|
ByteMax = value[0];
|
||||||
@ -51,5 +64,6 @@ public class FileSizeFormatter: IValueFormatter
|
|||||||
GByteMax = value[3];
|
GByteMax = value[3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
@ -1,33 +1,37 @@
|
|||||||
namespace anbs_cp;
|
namespace anbs_cp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Форматирует размерности в понятную строку
|
/// Форматирует размерности в понятную строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IValueFormatter
|
public interface IValueFormatter
|
||||||
{
|
{
|
||||||
|
|
||||||
#region Определения интерфейса
|
#region Определения интерфейса
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Имена размерностей
|
/// Имена размерностей
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string[] ValueNames { get; set; }
|
public string[] ValueNames { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Знаков после запятой
|
/// Знаков после запятой
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public byte DecimalPlaces { get; set; }
|
public byte DecimalPlaces { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Максимальные размеры (массив ulong[4])
|
/// Максимальные размеры (массив ulong[4])
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long[] MaxSizes { get; set; }
|
public long[] MaxSizes { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Методы интерфейса
|
#region Методы интерфейса
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Форматирование размерности
|
/// Форматирование размерности
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="value">Размерность, требующая форматирования</param>
|
/// <param name="value">Размерность, требующая форматирования</param>
|
||||||
/// <returns>Форматированная размерность (например, 20 Мб)</returns>
|
/// <returns>Форматированная размерность (например, 20 Мб)</returns>
|
||||||
public string Format (long value)
|
public string Format(long value)
|
||||||
{
|
{
|
||||||
//Левая граница
|
//Левая граница
|
||||||
long leftnum;
|
long leftnum;
|
||||||
@ -40,36 +44,31 @@ public interface IValueFormatter
|
|||||||
|
|
||||||
rightnum = i == MaxSizes.Length ? long.MaxValue : MaxSizes[i];
|
rightnum = i == MaxSizes.Length ? long.MaxValue : MaxSizes[i];
|
||||||
|
|
||||||
if ((value >= leftnum) && (value < rightnum))
|
if (value >= leftnum && value < rightnum)
|
||||||
return $"{FormatValue(value, leftnum)} {ValueNames[i]}";
|
return $"{FormatValue(value, leftnum)} {ValueNames[i]}";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return value.ToString();
|
return value.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Деление числа на число с DecimalPlaces знаками после запятой
|
/// Деление числа на число с DecimalPlaces знаками после запятой
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dividend">Делимое число</param>
|
/// <param name="dividend">Делимое число</param>
|
||||||
/// <param name="divider">Число-делитель</param>
|
/// <param name="divider">Число-делитель</param>
|
||||||
/// <returns>Частное (с DecimalPlaces знаками после запятой)</returns>
|
/// <returns>Частное (с DecimalPlaces знаками после запятой)</returns>
|
||||||
private string FormatValue (long dividend, long divider)
|
private string FormatValue(long dividend, long divider)
|
||||||
{
|
{
|
||||||
if (divider == 0)
|
if (divider == 0) return $"{dividend}";
|
||||||
{
|
|
||||||
return $"{dividend}";
|
|
||||||
}
|
|
||||||
|
|
||||||
long delim = 1;
|
long delim = 1;
|
||||||
|
|
||||||
for (int i = 0; i <= DecimalPlaces; i++)
|
for (int i = 0; i <= DecimalPlaces; i++) delim *= 10;
|
||||||
{
|
|
||||||
delim *= 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
decimal value = Math.Round((decimal)(dividend * delim / divider)) / delim;
|
decimal value = Math.Round((decimal) (dividend * delim / divider)) / delim;
|
||||||
|
|
||||||
return $"{value}";
|
return $"{value}";
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
@ -1,32 +1,30 @@
|
|||||||
namespace anbs_cp;
|
namespace anbs_cp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Класс, добавляющий реализацию некоторых методов Delphi, которые упрощают работу в C#.
|
/// Класс, добавляющий реализацию некоторых методов Delphi, которые упрощают работу в C#.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class LikeDelphi
|
public static class LikeDelphi
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Аналог функции IncludeTrailingBackslash
|
/// Аналог функции IncludeTrailingBackslash
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="path">Путь, к которому нужно добавить slash</param>
|
/// <param name="path">Путь, к которому нужно добавить slash</param>
|
||||||
/// <returns>Путь со slash в конце</returns>
|
/// <returns>Путь со slash в конце</returns>
|
||||||
public static string IncludeTrailingBackslash (string path)
|
public static string IncludeTrailingBackslash(string path)
|
||||||
{
|
{
|
||||||
string result = path;
|
string result = path;
|
||||||
int Index = path.Length - 1;
|
int Index = path.Length - 1;
|
||||||
if (path[Index] != '\\')
|
if (path[Index] != '\\') result = $"{path}\\";
|
||||||
{
|
|
||||||
result = $"{path}\\";
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Парсер строки в множество строк
|
/// Парсер строки в множество строк
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="astring">Строка, которую нужно разбить</param>
|
/// <param name="astring">Строка, которую нужно разбить</param>
|
||||||
/// <param name="delim">Символ-делитель строки</param>
|
/// <param name="delim">Символ-делитель строки</param>
|
||||||
/// <returns>Массив строк</returns>
|
/// <returns>Массив строк</returns>
|
||||||
public static List<string> ParseString (string astring, char delim)
|
public static List<string> ParseString(string astring, char delim)
|
||||||
{
|
{
|
||||||
int from = -1;
|
int from = -1;
|
||||||
int to;
|
int to;
|
||||||
@ -41,6 +39,7 @@ public static class LikeDelphi
|
|||||||
result.Add(astring[from..(to - from)]);
|
result.Add(astring[from..(to - from)]);
|
||||||
from = to;
|
from = to;
|
||||||
} while (to != astring.Length);
|
} while (to != astring.Length);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
90
anbs_cp/TimestampValidator.cs
Normal file
90
anbs_cp/TimestampValidator.cs
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
namespace anbs_cp;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Класс проверки временного интервала
|
||||||
|
/// </summary>
|
||||||
|
public static class TimestampValidator
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка попадания в заданный интервал (в мс)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="checkedstamp">Проверяемый временной интервал</param>
|
||||||
|
/// <param name="deltams">Временная дельта в миллисекундах</param>
|
||||||
|
/// <returns>
|
||||||
|
/// Попал ли <paramref name="checkedstamp" /> в промежуток <paramref name="timestamp" /> +
|
||||||
|
/// <paramref name="deltams" />
|
||||||
|
/// </returns>
|
||||||
|
public static bool Validate(long timestamp, long checkedstamp, ulong deltams) =>
|
||||||
|
new TimeSpan(timestamp) + TimeSpan.FromMilliseconds(deltams) > new TimeSpan(checkedstamp);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка попадания текущего времени в заданный интервал (в мс)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="deltams">Временная дельта в миллисекундах</param>
|
||||||
|
/// <returns>Попадает ли текущее время в промежуток <paramref name="timestamp" /> + <paramref name="deltams" /></returns>
|
||||||
|
public static bool ValidateNow(long timestamp, ulong deltams) =>
|
||||||
|
Validate(timestamp, DateTime.UtcNow.Ticks, deltams);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка временного интервала (в сек)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="checkedstamp">Проверяемый временной интервал</param>
|
||||||
|
/// <param name="deltasec">Временная дельта в секундах</param>
|
||||||
|
/// <returns>Попал ли <see cref="checkedstamp" /> в промежуток</returns>
|
||||||
|
public static bool ValidateFromSec(long timestamp, long checkedstamp, ulong deltasec) =>
|
||||||
|
Validate(timestamp, checkedstamp, checked(deltasec * 1000UL));
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка попадания текущего времени в заданный интервал (в сек)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="deltasec">Временная дельта в секундах</param>
|
||||||
|
/// <returns>Попадает ли текущее время в промежуток <paramref name="timestamp" /> + <paramref name="deltasec" /></returns>
|
||||||
|
public static bool ValidateFromSecNow(long timestamp, ulong deltasec) =>
|
||||||
|
ValidateFromSec(timestamp, DateTime.UtcNow.Ticks, deltasec);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка временного интервала (в мин)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="checkedstamp">Проверяемый временной интервал</param>
|
||||||
|
/// <param name="deltamin">Временная дельта в минутах</param>
|
||||||
|
/// <returns>
|
||||||
|
/// Попал ли <see cref="checkedstamp" /> в промежуток <paramref name="timestamp" /> + <paramref name="deltamin" />
|
||||||
|
/// </returns>
|
||||||
|
public static bool ValidateFromMin(long timestamp, long checkedstamp, ulong deltamin) =>
|
||||||
|
Validate(timestamp, checkedstamp, checked(deltamin * 60000UL));
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка попадания текущего времени в заданный интервал (в мин)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="deltamin">Временная дельта в минутах</param>
|
||||||
|
/// <returns>Попадает ли текущее время в промежуток <paramref name="timestamp" /> + <paramref name="deltamin" /></returns>
|
||||||
|
public static bool ValidateFromMinNow(long timestamp, ulong deltamin) =>
|
||||||
|
ValidateFromMin(timestamp, DateTime.UtcNow.Ticks, deltamin);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка временного интервала (в час)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="checkedstamp">Проверяемый временной интервал</param>
|
||||||
|
/// <param name="deltahr">Временная дельта в часах</param>
|
||||||
|
/// <returns>
|
||||||
|
/// Попал ли <see cref="checkedstamp" /> в промежуток <paramref name="timestamp" /> + <paramref name="deltahr" />
|
||||||
|
/// </returns>
|
||||||
|
public static bool ValidateFromHour(long timestamp, long checkedstamp, ulong deltahr) =>
|
||||||
|
Validate(timestamp, checkedstamp, checked(deltahr * 3600000UL));
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверка попадания текущего времени в заданный интервал (в час)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="timestamp">Временной интервал</param>
|
||||||
|
/// <param name="deltahr">Временная дельта в часах</param>
|
||||||
|
/// <returns>Попадает ли текущее время в промежуток <paramref name="timestamp" /> + <paramref name="deltahr" /></returns>
|
||||||
|
public static bool ValidateFromHourNow(long timestamp, ulong deltahr) =>
|
||||||
|
ValidateFromHour(timestamp, DateTime.UtcNow.Ticks, deltahr);
|
||||||
|
}
|
@ -1,113 +1,110 @@
|
|||||||
namespace anbs_cp;
|
namespace anbs_cp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Конвертер типов на манер Delphi
|
/// Конвертер типов на манер Delphi
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class TypeConverter
|
public static class TypeConverter
|
||||||
{
|
{
|
||||||
#region Конвертация числа в строку
|
#region Конвертация числа в строку
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование int в string
|
/// Преобразование int в string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AInt">Число</param>
|
/// <param name="AInt">Число</param>
|
||||||
/// <returns>Строка</returns>
|
/// <returns>Строка</returns>
|
||||||
public static string IntToStr (int AInt) => AInt.ToString();
|
public static string IntToStr(int AInt) => AInt.ToString();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование uint в string
|
/// Преобразование uint в string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AInt">Число</param>
|
/// <param name="AInt">Число</param>
|
||||||
/// <returns>Строка</returns>
|
/// <returns>Строка</returns>
|
||||||
public static string IntToStr (uint AInt) => AInt.ToString();
|
public static string IntToStr(uint AInt) => AInt.ToString();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование long в string
|
/// Преобразование long в string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AInt">Число</param>
|
/// <param name="AInt">Число</param>
|
||||||
/// <returns>Строка</returns>
|
/// <returns>Строка</returns>
|
||||||
public static string IntToStr (long AInt) => AInt.ToString();
|
public static string IntToStr(long AInt) => AInt.ToString();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование ulong в string
|
/// Преобразование ulong в string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AInt">Число</param>
|
/// <param name="AInt">Число</param>
|
||||||
/// <returns>Строка</returns>
|
/// <returns>Строка</returns>
|
||||||
public static string IntToStr (ulong AInt) => AInt.ToString();
|
public static string IntToStr(ulong AInt) => AInt.ToString();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование byte в string
|
/// Преобразование byte в string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AInt">Число</param>
|
/// <param name="AInt">Число</param>
|
||||||
/// <returns>Строка</returns>
|
/// <returns>Строка</returns>
|
||||||
public static string IntToStr (byte AInt) => AInt.ToString();
|
public static string IntToStr(byte AInt) => AInt.ToString();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Конвертация строки в число
|
#region Конвертация строки в число
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование строки в число
|
/// Преобразование строки в число
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AStr">Строка</param>
|
/// <param name="AStr">Строка</param>
|
||||||
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
||||||
/// <returns>Число</returns>
|
/// <returns>Число</returns>
|
||||||
public static int StrToInt (string AStr, int ADefault = 0)
|
public static int StrToInt(string AStr, int ADefault = 0)
|
||||||
{
|
{
|
||||||
if (!int.TryParse(AStr, out int result))
|
if (!int.TryParse(AStr, out int result)) result = ADefault;
|
||||||
{
|
|
||||||
result = ADefault;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование строки в число
|
/// Преобразование строки в число
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AStr">Строка</param>
|
/// <param name="AStr">Строка</param>
|
||||||
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
||||||
/// <returns>Число</returns>
|
/// <returns>Число</returns>
|
||||||
public static uint StrToUInt (string AStr, uint ADefault = 0)
|
public static uint StrToUInt(string AStr, uint ADefault = 0)
|
||||||
{
|
{
|
||||||
if (!uint.TryParse(AStr, out uint result))
|
if (!uint.TryParse(AStr, out uint result)) result = ADefault;
|
||||||
{
|
|
||||||
result = ADefault;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование строки в число
|
/// Преобразование строки в число
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AStr">Строка</param>
|
/// <param name="AStr">Строка</param>
|
||||||
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
||||||
/// <returns>Число</returns>
|
/// <returns>Число</returns>
|
||||||
public static long StrToInt64 (string AStr, long ADefault = 0)
|
public static long StrToInt64(string AStr, long ADefault = 0)
|
||||||
{
|
{
|
||||||
if (!long.TryParse(AStr, out long result))
|
if (!long.TryParse(AStr, out long result)) result = ADefault;
|
||||||
{
|
|
||||||
result = ADefault;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование строки в число
|
/// Преобразование строки в число
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AStr">Строка</param>
|
/// <param name="AStr">Строка</param>
|
||||||
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
||||||
/// <returns>Число</returns>
|
/// <returns>Число</returns>
|
||||||
public static ulong StrToUInt64 (string AStr, ulong ADefault = 0)
|
public static ulong StrToUInt64(string AStr, ulong ADefault = 0)
|
||||||
{
|
{
|
||||||
if (!ulong.TryParse(AStr, out ulong result))
|
if (!ulong.TryParse(AStr, out ulong result)) result = ADefault;
|
||||||
{
|
|
||||||
result = ADefault;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Преобразование строки в число
|
/// Преобразование строки в число
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="AStr">Строка</param>
|
/// <param name="AStr">Строка</param>
|
||||||
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
/// <param name="ADefault">Значение по умолчанию (по умолчанию, 0)</param>
|
||||||
/// <returns>Число</returns>
|
/// <returns>Число</returns>
|
||||||
public static byte StrToByte (string AStr, byte ADefault = 0)
|
public static byte StrToByte(string AStr, byte ADefault = 0)
|
||||||
{
|
{
|
||||||
if (!byte.TryParse(AStr, out byte result))
|
if (!byte.TryParse(AStr, out byte result)) result = ADefault;
|
||||||
{
|
|
||||||
result = ADefault;
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user