Функция Format - Pascal

Узнай цену своей работы

Формулировка задачи:

Нигде не нашел строковый формат этой функции. Только на С#
String.Format("{0,10}:{1}","Создать файл ?","да");                          //Создать файл ?:да
String.Format("{0,-10}:{1}", "Создать файл ?","да");  // Создать файл ?          :да
String.Format("{0:00000}", 15);                       // "00015"
String.Format("{0:00000}", -15);                      // "-00015"
String.Format("{0,5}", 15);                           // "   15"
String.Format("{0,-5}", 15);                          // "15   "
String.Format("{0,5:000}", 15);                       // "  015"
String.Format("{0,-5:000}", 15);                      // "015  "
String.Format("{0:#;minus #}", 15);                   // "15"
String.Format("{0:#;minus #}", -15);                  // "minus 15"
String.Format("{0:#;minus #;zero}", 0);               // "zero"
String.Format("{0:+### ### ### ###}", 447900123456);  // "+447 900 123 456"
String.Format("{0:##-####-####}", 8958712551);        // "89-5871-2551"
String.Format("{0:0.00}", 123.4567);                  // "123.46"
String.Format("{0:0.00}", 123.4);                     // "123.40"
String.Format("{0:0.00}", 123.0);                     // "123.00"
String.Format("{0:0.##}", 123.4567);                  // "123.46"
String.Format("{0:0.##}", 123.4);                     // "123.4"
String.Format("{0:0.##}", 123.0);                     // "123"
String.Format("{0:00.0}", 123.4567);                  // "123.5"
String.Format("{0:00.0}", 23.4567);                   // "23.5"
String.Format("{0:00.0}", 3.4567);                    // "03.5"
String.Format("{0:00.0}", -3.4567);                   // "-03.5"
String.Format("{0:0,0.0}", 12345.67);                 // "12,345.7"
String.Format("{0:0,0}", 12345.67);                   // "12,346"
String.Format("{0:0.0}", 0.0);                        // "0.0"
String.Format("{0:0.#}", 0.0);                        // "0"
String.Format("{0:#.0}", 0.0);                        // ".0"
String.Format("{0:#.#}", 0.0);                        // ""
String.Format("{0,10:0.0}", 123.4567);                // "     123.5"
String.Format("{0,-10:0.0}", 123.4567);               // "123.5     "
String.Format("{0,10:0.0}", -123.4567);               // "    -123.5"
String.Format("{0,-10:0.0}", -123.4567);              // "-123.5    "
String.Format("{0:0.00;minus 0.00;zero}", 123.4567);  // "123.46"
String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46"
String.Format("{0:0.00;minus 0.00;zero}", 0.0);       // "zero"
Для даты:
DateTime dt = new DateTime(2013, 11, 8, 16, 5, 7, 123);
 
String.Format("{0:y yy yyy yyyy}", dt);               // "3 13 013 2023"   год
String.Format("{0:M MM MMM MMMM}", dt);               // "11 11 Mar March" месяц
String.Format("{0:d dd ddd dddd}", dt);               // "8 08 Sun Sunday" день
String.Format("{0:h hh H HH}",     dt);               // "4 04 16 16"      время 12/24
String.Format("{0:m mm}",          dt);               // "5 05"            минуты
String.Format("{0:s ss}",          dt);               // "7 07"            секунды
String.Format("{0:f ff fff ffff}", dt);               // "1 12 123 1230"   sec.fraction
String.Format("{0:F FF FFF FFFF}", dt);               // "1 12 123 123"    without zeroes
String.Format("{0:t tt}",          dt);               // "P PM"            A.M. or P.M.
String.Format("{0:z zz zzz}",      dt);               // "+6 +06 +06:00"   временная зона
String.Format("{0:d/M/yyyy HH:mm:ss}", dt);           // "9/3/2008 16:05:07" -english(en-US)
String.Format("{0:d/M/yyyy HH:mm:ss}", dt);           // "9.3.2008 16:05:07" – german
String.Format("{0:M/d/yyyy}", dt);                    // "3/9/2008"
String.Format("{0:MM/dd/yyyy}", dt);                  // "03/09/2008"
String.Format("{0:ddd, MMM d, yyyy}", dt);            // "Sun, Mar 9, 2008"
String.Format("{0:dddd, MMMM d, yyyy}", dt);          // "Sunday, March 9, 2008"
String.Format("{0:MM/dd/yy}", dt);                    // "03/09/08"
String.Format("{0:MM/dd/yyyy}", dt);                  // "03/09/2008"

Решение задачи: «Функция Format»

textual
Листинг программы
  WriteLn( String.Format('первая{0}--{1}--{0}третья', NewLine, 13) ); // результат в 3 строки:
  //                                                                        [первая]
  //                                                                        [--13--]
  //                                                                        [третья]
  WriteLn( String.Format('{0}(10) = {0:x}(16)', 127) ); // x - предоставление результата в 16 представлении [127(10) = 7f(16)]
  WriteLn( String.Format('{0}(10) = {0:x8}(16)', 127) ); // x - предоставление результата в 16 представлении [127(10) = 0000007f(16)]
  WriteLn( String.Format('{0:f3}', 123.4567) ); // f - фиксировано 3 знака после запятой [123,457]
  WriteLn( String.Format('{0,10:f5}', 123.456789) ); // [ 123,45679]

Объяснение кода листинга программы

  1. Первый WriteLn:
    • Функция Format используется для форматирования строки.
    • В данном коде она форматирует строку 'первая{0}--{1}--{0}третья'
    • Первая переменная NewLine заменяется на перенос строки, вторая переменная 13 заменяется на 13.
    • Результат:
      • первая
      • --13--
      • третья
  2. Второй WriteLn:
    • Строка форматируется при помощи Format, подставляются значения и выводится результат.
    • Строка '{0}(10) = {0:x}(16)' означает подстановку значения 127 дважды: первый раз как десятичное число, второй раз в шестнадцатеричном виде.
    • Результат: 127(10) = 7f(16)
  3. Третий WriteLn:
    • Форматирование строки функцией Format.
    • Строка '{0}(10) = {0:x8}(16)' означает подстановку значения 127 дважды: первый раз как десятичное число, второй раз в шестнадцатеричном виде в восьмиразрядном формате.
    • Результат: 127(10) = 0000007f(16)
  4. Четвертый WriteLn:
    • Строка форматируется при помощи Format, где подставляется значение 123.4567.
    • Строка '{0:f3}' означает, что значение будет округлено до 3 знаков после запятой.
    • Результат: 123,457
  5. Пятый WriteLn:
    • Строка форматируется функцией Format, в которой подставляется значение 123.456789.
    • Строка '{0,10:f5}' означает, что значение будет округлено до 5 знаков после запятой и будет выровнено по ширине 10 символов.
    • Результат: 123,45679 (строка начинается с пустых символов до ширины 10 символов)

Оцени полезность:

14   голосов , оценка 3.714 из 5
Похожие ответы