====== Сообщение с анализом веса и скорости поездов за истекшие сутки ====== ТЕКСТ ЭТОГО ФАЙЛА (КРОМЕ ПРИМЕРА ФАЙЛА С СООБЩЕНИЕМ) ПРОДУБЛИРОВАН В \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 :)