45902 (607777), страница 4

Файл №607777 45902 (Java: Средства построения отчётов для Java-приложений) 4 страница45902 (607777) страница 42016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Открываем файл необходимой нам процедурой;

Включаем вывод ошибок {$I+} - пусть будет для дальнейшего отслеживания таковых;

Проверяем, если IOResult возвращает нуль, то все было путем и файл открыт. Иначе выводим ошибку.

Вот пример такой программы:

var

T: Text;

S: String;

begin

Write('Enter filename: ');

Readln(S);

Assign(T, S);

{$I-}

Reset(T); { открываем файл для чтения }

{$I+}

if IOResult <> 0 then { если не нуль, то была ошибка }

begin

Write('Error when open file!');

Halt;

end;

{ иначе все в порядке, продолжаем }

..........

end.

Закрытие файла

Выше я говорил о том, зачем нужно закрывать файл и когда надо это делать. Закрытие файла производиться с помощью процедуры Close(F), где F - это переменная файлового типа. Эта процедура одна для всех типов файлов.

Запись и чтение файлов. Часть I

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

Чтение файлов. Чтение файлов производится с помощью отлично известных нам процедур Read и Readln. Они используются также, как и при чтении информации с клавитуры. Отличие лишь в том, что перед переменной, в которую помещается считанное значение, указывается переменная файлового типа (дескриптор файла):

Read(F, C);

Здесь F - дескриптор файла, C - переменная (Char, String - для текстовых, любого типа - для типизированных файлов).

Также сразу хочу упомянуть о одной, пожалуй самой главной функции при чтении файлов. Это функция поверки на конец файла - Eof(F): Boolean;. В качестве параметра - файловая переменная любого типа. Функция возвращает TRUE если достигнут конец файла и FALSE иначе. Здесь все очень просто, демонстрации ради давайте напишем небольшую программку. Пусть имеем текстовый файл. Давайте его распечатаем и заодно посчитаем, например, количество пробелов:

var

T: Text;

С: Char;

Spaces: Word;

S: String[79]; { 79-макс. длина пути в DOS }

begin

Write('Enter filename: ');

Readln(S);

Assign(T, S);

{ открываем файл для чтения }

{$I-}

Reset(T);

{$I+}

{ если не нуль, то была ошибка }

if IOResult <> 0 then

begin

Write('Error when open file ', S, ' !');

Halt;

end;

{ иначе все в порядке, продолжаем }

{ ЦИКЛ: пока НЕ КОНЕЦ ФАЙЛА }

While (not Eof(T)) do

begin

{ читаем из файла переменную }

Read(T, C);

{ если пробел, увеличиваем счетчик }

If C = ' ' then Inc(Spaces);

Write(C);

end;

Writeln('КОЛИЧЕСТВО ПРОБЕЛОВ: ', Spaces);

Readln;

end.

Думаю, здесь все ясно. Продолжаем двигаться дальше и посмотрим, как производиться запись в файлы.

Запись в файлы. Вы еще не догадались? Запись в файлы производиться точно так же, как и запись на экран - с помощью процедур Write и Writeln. Как и в случае с чтением, перед записываемой в файл переменной указывается тескриптор файла:

Write(F, S);

Здесь F - дескриптор, S - переменная.

При этом, естественно, переменная должна соответствовать типу файла. Примера ради давайте составим еще одну небольшую программку, которая покажет работу с файлами. На сей раз уже используем типизированные файлы, а именно состоящие из чисел. Итак, мы имеем файл, в котором содержаться числа типа Integer. Давайте отсортируем эти числа в файле по возрастанию.

План дейтсвий:

Отрываем типизированный файл из Integer; (проверяем на ошибку и т.п.)

Читаем все числа в массив (считываем, пока не конец файла)

Сортируем массив по возрастанию;

Записываем отсортированный массив обратно в файл.

Получается такая программа:

Program Sorting;

uses Crt;

var

F: File of Integer;

I, J, M: Word;

Mas: Array[1..500] of Integer;

S: String;

begin

ClrScr;

Write('Enter filename: ');

Readln(S);

{ открываем файл }

Assign(F, S);

{$I-}

Reset(F);

{$I+}

if IOResult <> 0 then

begin

Write('Error when open file!');

Halt;

end;

{ пока не конец файла, читаем массив }

While (not Eof(F)) do

begin

Inc(M);

Read(F, Mas[M]);

Write(Mas[M], ' ');

end;

{ сортируем массив по возрастанию }

For I := 1 to M do

For j := 1 to M do

if Mas[I] < Mas[J] then

begin

inc(mas[j], mas[i]);

mas[i] := mas[j]-mas[i];

dec(mas[j], mas[i]);

end;

Writeln; Writeln('=============================================');

{ перезаписываем файл }

ReWrite(F);

For I := 1 to 100 do

begin

Write(Mas[I], ' ');

Write(F, Mas[i]);

end;

Writeln; Write('Elements in file: ', M);

Close(F);

Readln;

end.

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

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://bestcode.org/

Характеристики

Тип файла
Документ
Размер
270,24 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6689
Авторов
на СтудИзбе
290
Средний доход
с одного платного файла
Обучение Подробнее