> -- Иван Кузьмицкий писал(а):
> Всё это выглядит довольно громоздко и часто возникает желание видеть более-менее единообразную конструкцию инициализации полей.Если для Вашего приложения это не сказывается на требуемых от него характеристиках, а Вам так больше нравится, то почему бы и нет. Главное --- не забыть цену и не применить на автомате там, где это может выйти боком.

А вообще, если дело касается красот, --- на вкус и цвет товарища нет. Мне наоборот больше нравится код, который "ближе к реалиям железа". Пусть он объёмный, но суть очевидна, проглатывается быстро (есть же такая штука, как скорочтение, когда страницу за сколько-то секунд проглатывают?).

## Код:
```
...   ELSIF fch = ":" THEN
                  el.time.hour := x; GetChar;
                  IF ("0" <= fch) & (fch <= "9") THEN
                     x := ORD(fch) - ORD("0"); GetChar;
                     IF ("0" <= fch) & (fch <= "9") THEN
                        el.time.minute := x * 10 + ORD(fch) - ORD("0"); GetChar;
                        el.time.second := 0;
                        el.knownTime := TRUE;
                        GetCurrentDate(d);
                        d1.year := d.year; d1.month := el.date.month; d1.day := el.date.day;
                        IF Dates.Day(d1) > Dates.Day(d) THEN
                           el.date.year := d.year - 1
                        ELSE
                           el.date.year := d.year
                        END
                     ELSE
                        error := 20
                     END
                  ELSE
                     ...
```
## Код:
```
IF error = 0 THEN
                  a.date.year := files.modified.year;
                  a.date.month := files.modified.month;
                  a.date.day := files.modified.day;
                  a.time.hour := files.modified.hour;
                  a.time.minute := files.modified.minute;
                  a.time.second := files.modified.second;
                  a.xmlExists := TRUE;
                  IF ~((a.date.year = currDate.year) & (a.date.month = currDate.month) & (a.date.day = currDate.day)) THEN
                     error := 10;   (* дата xml файла не совпадает с датой, определяемой каталогом ГГГГ/ММ/ДД *)
                     VW.LogGlobals("error"); VW.LogLocals("a^"); VW.LogGlobals("currDate"); Log.Ln
                  END
               END
```

P.S. Название SternDates.GetTime(0, 0, 0) меня по началу ввело в заблуждение. Может лучше что-то типа MakeTime?