/*-----------------------------------------------------------------*/ /* 25.08.94 */ /* Это программное обеспечение может свободно передаваться любым */ /* лицам и организациям в виде как исходных текстов программ, так */ /* и в виде исполняемых файлов без каких-либо ограничений. */ /* Авторские права: */ /* Текст сюжета - Гарри Гаррисон */ /* Программа-интерпретатор - */ /* Александр Тютюнников (shurick@medlux.msk.su) */ /* Олег Ховайко (olegh@medlux.msk.su) */ /*-----------------------------------------------------------------*/ #include #include "bearat.h" NO_CML void main() { FILE *fIn, *fOut; static int c, iItem, iMaybe; long lPos; fIn = fopen(DataFileName, "rb"); if (!fIn) { printf("Open file error\n"); exit(1); } fOut = fopen(IndexFileName, "wb"); if(!fOut) { printf("Create file error\n"); exit(1); } do { while ((c = fgetc(fIn)) != EOF) if (c == '#') break; if (c != '#') { fclose(fIn); fclose(fOut); if (iItem < Chapters) exit(1); else exit(0); } for (iItem = 0; (c = fgetc(fIn)) != EOF; ) if ((c >= '0') && (c <= '9')) iItem = iItem * 10 + c -'0'; else break; lPos = ftell(fIn); if (iMaybe++ != iItem) { printf("?Rat-F-Invalid text file %d %d\n", iMaybe-1, iItem); exit(0); } fwrite(&lPos, 1, sizeof(long), fOut); } while (c != EOF); fclose(fIn); fclose(fOut); if (iItem < Chapters) exit(1); }