Толик Панков
hex_laden
............ .................. ................
Back January 30th, 2021 Forward
C#, добавление лидирующих нолей к строковому представлению числа, более оптимальный способ.

Преамбула


Здесь (копия) я показал довольно неоптимальный способ решения данной задачи, но его можно оптимизировать с помощью стандартных функций. Напомню суть задачи: даны числа, скажем, от 1 до 1000, необходимо вывести их на экран или в файл последовательно, добавив лидирующие ноли, исходя из максимального числа. Если максимум 1000, то числа должны быть выведены так:
0001
0002
0003
...
0100
0101
0102
...
1000


Если максимум 100, то:

001
002
...
099
100


Подготовка


Как и в предыдущей версии решения, понадобится задать максимальное число (в тестовых примерах опять же, зададим его статически), например:

int maxnum = 150;

И опять же, понадобится функция, вычисляющая количество цифр (разрядов) числа (копия). Например, такая:

static int CountDigitsRec(int n)
{
    n = (int)Math.Abs(n);
    if (n <= 9)
    {
        return 1;
    }
    else
    {
        return CountDigitsRec(n / 10) + 1;
    }
}


Форматирование строки


C# автоматически умеет форматировать строки, используя специальные паттерны описания формата, задаваемые в виде строки. Основные паттерны перечислены в таблице ниже:

C / cЗадает формат денежной единицы, указывает количество десятичных разрядов после запятой
D / dЦелочисленный формат, указывает минимальное количество цифр
E / eЭкспоненциальное представление числа, указывает количество десятичных разрядов после запятой
F / fФормат дробных чисел с фиксированной точкой, указывает количество десятичных разрядов после запятой
G / gЗадает более короткий из двух форматов: F или E
N / nТакже задает формат дробных чисел с фиксированной точкой, определяет количество разрядов после запятой
P / pЗадает отображения знака процентов рядом с число, указывает количество десятичных разрядов после запятой
X / xШестнадцатеричный формат числа


Для форматирования строки, содержащей целое число, необходимо использовать паттерн d.

Форматирование во время вывода строки на консоль.


Отформатировать строку можно сразу во время вывода на консоль, функцией Console.Write()/Console.WriteLine():

int num = 125
Console.Write ("0:d4", num) //вывод: 0125


или

int num = 25
Console.Write ("0:d4", num) //вывод: 0025


Пример:

static void Main(string[] args)
{
    int maxnum = 150;
    string FormatPattern = "{0:d" + 
        CountDigitsRec(maxnum).ToString() + "}";

    for (int i = 0; i <= maxnum; i++)
    {
        Console.WriteLine(FormatPattern, i);
    }

    Console.WriteLine("Press Enter...");
    Console.ReadLine();
}


Пример на GitHub

Использование String.Format()


Функция String.Format() может сделать аналогичную операцию, но отличается тем, что вывод функции можно сохранить в строковую переменную и использовать далее, а не просто вывести на консоль.

Пример:

static void Main(string[] args)
{
    int maxnum = 1150;
    string FormatPattern = "{0:d" +
        CountDigitsRec(maxnum).ToString() + "}";
    string TempFile = Path.GetTempFileName();
    string Result = "";
    List<string> WriteList = new List<string>();

    for (int i = 0; i <= maxnum; i++)
    {
        Result = String.Format(FormatPattern,i);
        Console.WriteLine(Result);
        WriteList.Add(Result);
    }

    File.WriteAllLines(TempFile, WriteList.ToArray());

    Console.WriteLine("Test file: " + TempFile);
    Console.WriteLine("Press Enter...");
    Console.ReadLine();
}


В цикле результат работы функции String.Format() возвращается в переменную Result, значение которой выводится на консоль и сохраняется в List<string> WriteList для дальнейшей записи в файл.

Пример на GitHub

Примечание: в источнике есть еще варианты форматирования строк, ознакомьтесь.

Источник


Форматирование и интерполяция строк (копия на mega.nz, PDF)

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2021/01/27/c-dobavlenie-lidiruyushhih-nolej-k-strokovomu-predstavleniyu-chisla-bolee-optimalnyj-sposob/

Tags: ,
Красные Звезды — 300 кровавых пятен (на стихи Алины Витухновской)



Прямая ссылка: https://www.youtube.com/watch?v=VQwJQ45F57c

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2021/01/30/krasnye-zvezdy-300-krovavyh-pyaten-na-stihi-aliny-vituhnovskoj/

Ничего Хорошего Молотов Коктейль (Nothing Good - Molotov)



Запретили песенку на территории ГОРФ, ублюдки сраные из роскомговна. По поводу нам скидывали интервью Барта, фронтмена группы "Ничего хорошего", но оно безблагодатно проебано куда-то, тяжко иметь 40+ аккаунтов в соцсетях, и потом разобраться, где с кем переписывался.

Прямая ссылка: https://www.youtube.com/watch?v=RLV53ix4GVM

Текст


Под катом )

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2021/01/30/nichego-horoshego-molotov-koktejl-nothing-good-molotov/

Наконец понял, почему устьподзалупинский (маськовский) суд запрещает аниме "Инуясики" (или "Инуяшики



Аниме, так-то про пенсионера, который в результате несчастного случая с НЛО, получает новое тело и превращается в боевого робота. Правда вместе с ним, такие же способности получает и омежка, которым в детстве был известный всем Владимир Таврический Хуйло.

Хуйло начинает валить всех направо и налево, руководствуясь принципом: "друзьям все - остальным пиздец", так что от него даже друг сваливает (это прямо предсказание, запомните этот твит). Причем валит даже не по делу, а ради удовольствия.

А Дед, он воюет со злом, пиздит гопников, выпиливает бандитов, да и охотится за Хуйлом (правда, весьма вяло).

Понятно, что такое молодежи показывать нельзя.

Попробуй этому пенсионеру повысить пенсионный возраст, скажет ведь: "То, что вы делаете, недостойно" - и развесит по фонарям и ПФ РФ, и роскрысдию и ФСО.
Тем более, уничтожил самую крутую банду нараёне, как так-то? Прямая отсылка к самой крутой банде в ГОРФ, т.е. к нашему, а не анимешному Хуйлу и его друзьям-подхуйловникам.
Ну и, естественно, японцы, того не желая, наступили на мантру пропаганды всея ГОРФ - "Деды Воевали"!

Нельзя показывать, ну никак нельзя.

ЗЫ. Гей-секс там был, но исключительно в негативной коннотации, как отношения между старшим бандитом и подчиненным. Хотя и это, наверное, задело зоновский роскомсуд, т.к. такой гей-секс в ГОРФ вполне разрешен. А его тут с негативной стороны показывают.

ЗЗЫ. Антагонист, впрочем, тоже сделал полезную вещь, хотя и в стиле роскомнадзора - перебил кучу анонов с местного двача. А потом даже исправился и помог планету спасти.

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2021/01/30/nakonets-ponyal-pochemu-ustpodzalupinskij-maskovskij-sud-zapreshhaet-anime-inuyasiki-ili-inuyashiki/

Back January 30th, 2021 Forward