1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | DEFINT A-Z ' То что запишем в файл DATA "Petrov", 4 , 3 , 5 DATA "Sidorov", 3 , 3 , 2 DATA "Evseev", 4 , 3 , 4 DATA "Kotov", 2 , 4 , 2 DATA "Utkin", 5 , 5 , 5 DATA "Vasechkin", 2 , 2 , 2 ' Студентов CONST StudNum = 6 ' Очистка экрана и запрос CLS : PRINT "Rewrite file ? [ Y ] - yes / [ N ] - no / [ Esc ] - Exit" ' Цикл опроса клавиатуры DO : kb$ = INKEY$ ' Нажали "Y" - перезаписываем файл IF UCASE$(kb$) = "Y" THEN ON ERROR GOTO ErrEv: ' Сьавим обработчик ошибок KILL "Students . txt" ' Удаляем старый файл если он был ON ERROR GOTO 0 ' Снимаем обработчик ' Создаем файл для записи OPEN "O", # 1 , "Students . txt" ' Цикл по студентам RESTORE FOR I = 1 TO StudNum READ Name$ ' Читаем из DATA PRINT # 1 , Name$ ' Пишем в файл ' Цикл по оценкам FOR k = 1 TO 3 READ ocenk ' Читаем из DATA IF k = 3 THEN PRINT # 1 , ocenk ' Пишем в файл с пер. строки. ELSE PRINT # 1 , ocenk; ' Пишем в файл END IF NEXT NEXT ' Закроем файл CLOSE # 1 EXIT DO ELSEIF kb$ = CHR$( 27 ) THEN END ' Выход по ESC END IF LOOP UNTIL UCASE$(kb$) = "N" ' Откроем файл для чтения OPEN "I", # 1 , "Students . txt" ' Цикл по студентам FOR I = 1 TO StudNum INPUT # 1 , Name$ ' Читаем из файла Nezdano = 0 ' Цикл по оценкам FOR k = 1 TO 3 ' Читаем из файла INPUT # 1 , ocenk IF ocenk < 3 THEN Nezdano = Nezdano + 1 NEXT IF Nezdano > 0 THEN PRINT Name$; " ne zdal"; Nezdano; " ekzamena" END IF NEXT ' Закроем файл CLOSE # 1 END ErrEv: RESUME NEXT |
Тестирование выполнено в программе QB64 ( Скачать )