randomElement для строк

.ToReals - разделителями могут быть пробел табуляция и переход на новую строку

NumberFormat - функция, возвращающая nfi
This commit is contained in:
Mikhalkovich Stanislav 2024-08-24 12:13:09 +03:00
parent ae2e26acf8
commit d94885b950

View file

@ -264,6 +264,9 @@ type
/// Указывает, что поле сериализуемого класса не должно быть сериализовано
NonSerialized = System.NonSerializedAttribute;
/// Сведения для форматирования числовых значений
NumberFormatInfo = System.Globalization.NumberFormatInfo;
/// Представляет тип короткой строки фиксированной длины 255 символов
ShortString = string[255];
@ -1511,6 +1514,10 @@ function TypeToTypeName(t: System.Type): string;
/// Возвращает строку с именем типа объекта
function TypeName(obj: object): string;
/// Настройки форматирования числовых значений
function NumberFormat: NumberFormatInfo;
///-procedure New<T>(var p: ^T);
/// Выделяет динамическую память размера sizeof(T) и возвращает в переменной p указатель на нее. Тип T должен быть размерным
//procedure New<T>(var p: ^T);
@ -2948,9 +2955,9 @@ implementation
var
rnd: System.Random;
nfi: System.Globalization.NumberFormatInfo;
nfi: NumberFormatInfo;
StartTime: DateTime;// Для Milliseconds
const
WRITELN_IN_BINARYFILE_ERROR_MESSAGE = 'Операция Writeln не применима к бинарным файлам!!Writeln is not applicable to binary files';
InternalNullBasedArrayName = 'NullBasedArray';
@ -4755,6 +4762,8 @@ begin
Result := res.ToString;
end;
function NumberFormat: NumberFormatInfo := nfi;
//------------------------------------------------------------------------------
// Операции для array of T
//------------------------------------------------------------------------------
@ -13998,7 +14007,7 @@ end;
/// Преобразует строку в массив вещественных
function ToReals(Self: string): array of real; extensionmethod;
begin
Result := Self.ToWords().ConvertAll(s -> StrToFloat(s));
Result := Self.ToWords(' '#9#10#13).ConvertAll(s -> StrToFloat(s));
end;
/// Возвращает инверсию строки
@ -14116,6 +14125,12 @@ begin
Result := L.Select(i -> i - 1)
end;
/// Возвращает случайный символ строки
function RandomElement(Self: string): char; extensionmethod;
begin
Result := Self[Random(Self.Length)+1];
end;
///--
function CreateSliceFromStringInternal(Self: string; from, step, count: integer): string;
begin