Решаем задачи Абрамян на Паскале. File5

File5. Дано имя файла целых чисел. Найти количество элементов, содержащихся в данном файле. Если файла с таким именем не существует, то вывести $$-1$$.

Решение:

Решение от Кирилла:

Другие задачи из раздела File можно посмотреть здесь.

Комментарии:

Комментарии 4

  • Подскажи, пожалуйста, что есть: {$I-} и {$I+} в коде и для чего это. В туториале для PascalABC.NET такого не нашёл.

    • И aeyrwbb IOResult в задачнике тоже не нашёл…

      • Когда компьютеры были большие, а программы маленькие. И не было функции FileExists(). Люди пользовались для этого следующими костылями:
        Штуки типо {$I-} это флаги для компилятора. По умолчанию если программа видит ошибку связанную с файлом, например он не может открыться, то программа выдаёт ошибку и закрывается.
        Для решения данной задачи мне надо было изменить поведения программы на данное событие и я указал флаг копилятору:
        {$I-}
        При этом флаге если происходит ошибка во время работы с файлом, программа не закрывается, а продолжает работать дальше.

        Этот флаг:
        {$I+}
        возвращает реакцию на ошибку по умолчанию.

        А вот сюда попадают коды ошибок IOResult.
        Соответственно если IOResult не равен нулю значит там код ошибки.

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

  • Автоматическая проверка задачника pt4taskbook (Абрамяна) требует ассоциировать переменную с файлом, даже если файл отсутствует + открыть его для перезаписи (не для чтения). Т.е. У меня получился такой код:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *