Сообщение с анализом веса и скорости поездов за истекшие сутки

 
ТЕКСТ ЭТОГО ФАЙЛА (КРОМЕ ПРИМЕРА ФАЙЛА С СООБЩЕНИЕМ) ПРОДУБЛИРОВАН 
В \GID\DOC_USER\EXPLOIT\excploit.doc ПРИЛОЖЕНИЕ 31. 

     1. Принципы формирования сообщения

     1.1.  Сообщение  может  выдаваться  с  любой  ПЭВМ,  на
которой установлен ГИД. Для этого на данной ПЭВМ в файле
              "GID\EXE\!an_auto.def"
в разделе  "@Сообщение с  анализом Веса/скорости..."  должно
быть  отмечено,  что  с  этой  ПЭВМ  нужно  выдавать  данное
сообщение,  указан  каталог  для  его  записи,  время, после
которого  ГИД  должен   производить  автоматический   анализ
графика  за   истекшие  сутки   и  записывать   сообщение  с
результатами, код этого сообщения.

     1.2.  Файл  с   сообщением  записывается  в   указанный
каталог  под  именем,  включающим  в  себя день, месяц и год
отчетных  суток.  Начинается   имя  файла  символами   "w_".
Например, файл с отчетом за 7 октября 1997 года для  объекта
GOR будет иметь имя
                      w_071097.gor


     2. Структура файла

     2.1. Файл  содержит информацию  с результатами  анализа
веса, длины  и скорости  грузовых поездов  за истекшие сутки
отдельно по  каждому диспетчерскому  участку и  по дороге  в
целом.
     2.2.  Файл  следует  интерпретировать  как  стандартный
текстовый файл MS DOS  (символы кода ASCII с  наличием среди
них  парных   символов  с   16-ричными  кодами   0D  и   0A,
означающими конец строки).

     2.3. Строки файла

     В первой строке  содержится служебная фраза  сообщения,
содержащая код сообщения и дату отчетных суток.
     Следующие   две   строки   являются   комментариями   и
обработке не подлежат.
     Далее идут  строки, каждая  из которых  содержит данные
анализа по одному диспетчерскому участку.
     После  этих  строк   идет  строка,  содержащая   данные
анализа по дороге в целом.
     Последняя строка содержит признак конца сообщения.

     2.4. Структура строки с данными анализа

     В начале строки  стоит код диспетчерского  участка (или
000 - для строки с данными по дороге в целом).
     Далее идут пять групп цифровых символов, по 74  символа
в каждой группе.  Эти группы содержат  соответственно данные
по следующим видам поездов:
     - сквозные (с номерами в диапазоне 1001-2998);
     - участковые                      (3001-3398);
     - местные                         (3401-3898);
     - нечетные;
     - четные.
Поезда с номерами, не  входящими в три указанных  диапазона,
в анализ не включаются.
     Каждая   группа   содержит   9   исходных  показателей,
необходимых и  достаточных для  расчета всех  показателей по
данному  виду  поездов  за  отчетные  сутки,  а  также   для
суммирования  за  любой  более  длительный период и подсчета
средних за этот период показателей.
     Ниже  приводится  кусок  программы  на языке Pascal, из
которого  понятны  смысл  всех  исходных показателей группы,
формулы для получения итоговых показателей и пример файла.

                        Желаю успеха.            Ф.А.Шевелев

TYPE TWeightResult=
           { Анализ веса/скорости для подразделения } RECORD
           { за некоторый период для группы поездов        }
     { 1. Данные, которые нужно складывать при суммировании}
     {    показателей за несколько периодов: --------------}
     count: word;                           { к-во поездов }
     dist_forAn,{ поездо/км для расчета Веса,Вагонов,Длины }
     dist_forVU,{ поездо/км, для которых знаем время в ходу}
     ton_km,                           {   тонно-километры }
     van_km,                           {  вагоно-километры }
     len_km : real;                    { "длино"-километры }
     hod,          { поездо-минуты в ходу                  }
     stopTehn,     { поездо-минуты на технических станциях }
     stopOther: LongInt;{ поездо-минуты на прочих станциях }
     { 2. Результаты, вычисляемые на основе перечисленных  }
     {    выше данных: ------------------------------------}
     ton,                           { средний вес          }
     van,                           { среднее к-во вагонов }
     len,                           { средняя длина        }
     VU,                    { участковая  скорость, км/час }
     VT : real;             { техническая скорость, км/час }
{ Конец TWeightResult }                                  END;

(* Расчет среднего веса, длины, к-ва вагонов, участковой и
   технической скорости:

CONST minDist: real=0.5;  Минимально допуст. расст.между РП
VAR t: LongInt;           Рабочая переменная
ton:=0; len:=0; van:=0; VU:=0; VT:=0;{если нельзя вычислить}
IF dist_forAn >= minDist THEN BEGIN
   ton:= ton_km / dist_forAn;       { средний вес          }
   len:= len_km / dist_forAn;       { средняя длина        }
   van:= van_km / dist_forAn    END;{ среднее к-во вагонов }
t:= hod + stopOther; { без стоянок на технических станциях }
{ Участковая скорость:                                     }
IF t > 1 THEN VU:= dist_forVU*60/t;   IF VU>100 THEN VU:=0;
{ Техническая скорость:                                    }
IF hod>1 THEN VT:= dist_forVU*60/hod; IF VT>100 THEN VT:=0*)

     Примечание: Строки файла с  данными имеют длину по  373
символа, поэтому, для изучения нижеследующего примера  файла
рекомендую  использовать  редактор,  позволяющий  работать с
такими длинными строками.  Я использую Multi-Edit.

     Пример файла:

(:0888 07.10.97
   Сквозные                                                                  Участковые                                                                Местные                                                                   Нечетные                                                                  Четные
 ДУ   П  П/км-В  П/км-Х   Тонно/км  Вагоно/км   Длино/км  П/м-Х  П/м-Т П/м-Пр   П  П/км-В  П/км-Х   Тонно/км  Вагоно/км   Длино/км  П/м-Х  П/м-Т П/м-Пр   П  П/км-В  П/км-Х   Тонно/км  Вагоно/км   Длино/км  П/м-Х  П/м-Т П/м-Пр   П  П/км-В  П/км-Х   Тонно/км  Вагоно/км   Длино/км  П/м-Х  П/м-Т П/м-Пр   П  П/км-В  П/км-Х   Тонно/км  Вагоно/км   Длино/км  П/м-Х  П/м-Т П/м-Пр
101  28    2924    2924   10317217     201907     211487   4400   4943      0   9    1044    1044    4227191      71745      72736   1538   1214      0   3     287     287     843406      19424      19397    464    277     69  20    2271    2271    9900856     152413     159280   3620   4159     69  20    1984    1984    5486958     140663     144340   2782   2275      0
102  28    3438    3438   12328264     230574     243591   4232    835    196  16    1299    1299    4036521      91604      87938   2268   2240     51  15     586     586    1477222      24953      25753    995   3142    248  27    2397    2397    9690955     144380     151782   2985   3722    260  32    2926    2926    8151052     202750     205500   4510   2495    235
103  31    3543    3543   12389206     227343     243002   4669    980      0   4     457     457    1909382      32004      31432    681    193      0   2     229     229     587870      10553      10710    325    234    114  19    2172    2172    8978459     135496     143768   3052    831     58  18    2057    2057    5907998     134404     141376   2623    576     56
104  27    3804    3740   13269293     252284     269409   4774      0      0   4     564     564    2339645      36211      37339    804      0     11   2     243     243     620248      10631      10836    365      0     90  16    2216    2152    9464612     143293     151887   2652      0      0  17    2395    2395    6764574     155834     165697   3291      0    101
105   1     175     175     645731       9620       9969    347    133      0   6     875     875    2850447      44999      45761   1751    519      0   5     583     583    1169508      22254      22425   1731    497    310   7     758     758    2121190      38279      39133   1849    708     38   5     875     875    2544497      38594      39023   1980    441    272
201   0       0       0          0          0          0      0      0      0   1      50      50     162925       2705       2806     88      0     80   0       0       0          0          0          0      0      0      0   0       0       0          0          0          0      0      0      0   1      50      50     162925       2705       2806     88      0     80
202   1      17      17      60816        991        974     39      0     10  14     605     605    2298690      38781      38229   1309      0    194  14     573     573    1868705      25166      24066   1583   1155    159   4     309     309     792875      13961      14458    498    182     84  25     886     886    3435336      50978      48812   2433    973    279
203  32    4293    4293   15923768     298379     306649   5227   1506      0   0       0       0          0          0          0      0      0      0   1     132     132     240710       5189       5321    225    105     20  13    3157    3157   13058331     217051     224184   4004    856      0  20    1268    1268    3106146      86517      87785   1448    755     20
204   0       0       0          0          0          0      0      0      0   0       0       0          0          0          0      0      0      0   8     220     220     411085       7414       7529    378    420     75   5      84      84      56476       2104       2121    173    330      0   3     136     136     354608       5310       5408    205     90     75
205  49    7222    7222   19832418     505541     514254  10220   4347    337   3     212     212     846827      12708      12867    321    200     60   7     280     280     874920      15847      16031    545    944    117  18    1202    1202    5211139      81423      82823   1962   1485    207  41    6512    6512   16343026     452674     460330   9124   4006    307
206   0       0       0          0          0          0      0      0      0   0       0       0          0          0          0      0      0      0  12     189     189     326391       6524       6603    483    676    139   5      92      92     135528       2931       2983    244    289     59   7      97      97     190863       3593       3620    239    387     80
301  59    7504    7504   24303034     472689     481910   8720      0    632   6     678     626    2965427      39688      38562    725      0     19   2     108     108     191743       2905       3658    129     20      0  32    4049    3997   16716817     240510     241300   4498     20    105  35    4240    4240   10743387     274772     282830   5076      0    546
302  30    7608    7608   16972180     500606     506186  11681   1672      0   4     472     472    1078313      25584      25466    883    401      0  11     237     237     310530       7152       8006    932   2581     34   8     647     647    1013074      28266      27038   1165   1172     17  37    7670    7670   17347949     505076     512620  12331   3482     17
303  21    3610    3385   10432477     246129     244268   4590      5   1206   2     241     241    1260108      14967      14484    307      1     19  12    1158    1158    1842068      34735      35881   1710    311    349  20    2157    2157    7255720     106405     107649   2915    266    829  15    2852    2627    6278932     189425     186983   3692     51    745
304  86    8437    8437   32903891     501692     507510  11803   8244   1313  13    1679    1679    7848082     100064      98078   2460   1667      0   7     496     496    1271808      23044      23395    745    429    635  59    8921    8921   38388786     515054     518574  12523   5253    383  47    1690    1690    3634994     109747     110409   2485   5087   1565
305   3     566     566     911442      37396      33106   1087    669      0   8    1164    1151    3041979      54426      53838   2088   3160    167   2      98      98     114840       4157       5091    162   1033      0   5     668     668    1814073      31361      32000   1248   2001      0   8    1159    1145    2254188      64617      60035   2089   2861    167
401   0       0       0          0          0          0      0      0      0   2     223     223     264279       5953       6143    405    180      0   0       0       0          0          0          0      0      0      0   0       0       0          0          0          0      0      0      0   2     223     223     264279       5953       6143    405    180      0
402  26    2967    2967   10039900     197723     211485   4247      0    130   7     799     799    3385233      54083      55567   1228      0      0   1      22      22      23893        372        394     25     30      0  16    1733    1733    7481811     114130     119857   2415     30      0  18    2054    2054    5967214     138048     147589   3085      0    130
403  42    7494    7356   26219332     499315     520309  10757   3874     68   2     322     322    1092089      17578      18095    518    236      0  18     900     900    1680153      26999      29895   1951   2473     73  28    3949    3811   15394447     233117     241854   6104   3261     64  34    4768    4768   13597127     310775     326444   7122   3322     77
404   6     678     678    2529421      36243      38014   1182   1200     20   1     187     187     795897       9578       9391    401     47     27   1      65      65      64511        779        844    102     50     25   2     136     136     350225       4711       4919    231    143     25   6     794     794    3039604      41888      43329   1454   1154     47
405   2     237     237     612864      11936      12736    395     87      0   1     114     114     211112       4915       4915    164      0      0   3     473     473    1552986      22680      22329   1052    248    104   2     351     351    1193777      16178      16064    736    208     46   4     473     473    1183184      23353      23917    875    127     58
501  42    4632    4632   16868918     311277     327362   7021     95      0   1     112     112     400333       7596       7819    125      0      0   3     283     283     643098       8767       8938    638     20      0  21    2286    2286    9408586     144174     151881   3286     45      0  25    2740    2740    8503762     183465     192238   4498     70      0
502  28    3864    3864   12954612     256680     272688   5064     40      0   8    1104    1104    3930930      67896      68448   1594     45      0  11     926     926    2056554      32247      32447   1795    337    384  21    2614    2614   10492620     157254     164879   3543    270    156  26    3280    3280    8449476     199568     208704   4910    152    228
503  24    4978    4978   17145551     334536     352165   6474      0      0   9    1867    1867    6465488     116974     118218   2952      0      0   5     871     871    1978494      27796      27174   1507      2      0  19    3775    3775   15502633     216116     224619   5620      2      0  19    3941    3941   10086899     263191     272938   5313      0      0
504  28    3945    3945   13975166     264047     277573   6585   2595      0   6     845     845    2709225      56360      57346   1233    475      0   3     305     305     930428      12367      12132    578    295     25  17    2278    2278   10463637     146894     152577   3836   1470      0  20    2818    2818    7151183     185880     194475   4560   1895     25
505   9     734     734    2134472      43258      41869   1663     27      0   0       0       0          0          0          0      0      0      0   1      56      56      15707        666        666    120     27      0   8     673     673    1887743      36161      34854   1458     54      0   2     117     117     262436       7763       7682    325      0      0
506  16    1054    1054    3681868      60880      58175   2190   1412    225   0       0       0          0          0          0      0      0      0  13     576     576     884663      18057      18206   1541   2273      0  19     994     994    2802236      50156      48811   2075   2590     85  10     635     635    1764295      28781      27570   1656   1095    140
607  36    3339    3339    9596780     241378     242229   4712   4441     20   0       0       0          0          0          0      0      0      0   8     426     426     675840      12530      13184    693   1919    238  13     792     792    3436497      51485      51949   1417   2098    238  31    2973    2973    6836123     202423     203464   3988   4262     20
608  38    4653    4653   16578296     331955     336078   5920    392    152   8     682     682    1654075      37995      39506   1122   2147     43  15    1169    1169    3933239      58513      59874   1980   3618    313  30    3575    3575   14798257     232345     236878   5090   2478    366  31    2929    2929    7367352     196118     198579   3932   3679    142
000 279   91714   91287  302626914    6074377    6262997 128114  56142   4565  81   15594   15528   55774197     944414     944984  24965  21253    671 165   11491   11491   26590618     441720     450785  22754  30890   3521 253   54258   54003  217811361    3255648    3348122  79199  51525   3345 272   64541   64302  167180369    4204863    4310645  96634  56760   5412
:)