Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder




Скачать 84.17 Kb.
НазваниеЛабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder
Дата публикации17.08.2013
Размер84.17 Kb.
ТипЛабораторная работа
www.lit-yaz.ru > Бухгалтерия > Лабораторная работа

Технология программирования. Лабораторная работа 5.

Лабораторная работа 5. Работа с файлами в приложениях на С++ Builder


Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder.

Краткие теоретические положения


Файловые операции ввода-вывода можно выполнять после включения в программу заголовка , в котором определены все необходимые для этого классы и значения.

Открытие и закрытие файла


В С++ файл открывается путем связывания его с потоком. Существуют потоки трех видов: ввода, вывода и ввода-вывода. Чтобы открыть входной поток, необходимо объявить потоковый объект ifstream. Для открытия выходного потока нужно объявить поток типа ofstream. Поток, который предполагается использовать для операций ввода и вывода должен быть объявлен как объект класса fstream. Например:

ifstream in;

ofstream out;

fstream f;

Создав поток, нужно его связать с файлом. Это можно сделать с помощью функции open(). Ее используют следующим образом:

имя_потока.open(имя_файла, режим);

имя_файла может включать путь к файлу.

режим должен принимать одно или несколько значений перечисления openmode:

ios:app

ios:ate

ios:binary

ios:in

ios:out

ios:trunc

Назначение каждого из значений:

  • app - присоединение к концу файла всех выводимых данных (только для файлов, открытых для вывода данных);

  • ate – поиск будет начинаться с конца файла;

  • binary - открытие файла в двоичном режиме; по умолчанию все файлы открываются в текстовом режиме. По умолчанию все файлы открываются в текстовом режиме. В текстовом режиме могут происходить некоторые преобразования символов (например, последовательность, состоящая из символов возврата каретки и перехода на новую строку, может быть преобразована в символ новой строки). При открытии файла в двоичном режиме никакого преобразования символов не происходит. Любой файл можно открыть как в текстовом, так и в двоичном режиме. Единственное различие между этими режимами состоит в преобразовании (или нет) символов.

  • in - открытие файла для ввода данных (обычно это значение по умолчанию);

  • out – открытие файла для вывода данных (обычно это значение по умолчанию);

  • trunc – при открытии уже существующего файла его содержимое удаляется.

Пример создания и открытия обычного выходного файла:

ofstream out;

out.open(“test1.txt”);

Так как параметр mode функции open() по умолчанию устанавливается равным значению, соответствующему типу открываемого потока, в предыдущем примере нет необходимости задавать его значение.

Можно проверить успешность выполнения предыдущей операции по созданию и открытию файла следующим образом:

if(!out)

{cout<< “НЕ удается открыть файл.\n”;

//return 1;

}

Прежде чем выполнять какие-либо дальнейшие операции с файлом, всегда следует проверять результат выполнения функции open().

Можно также проверить файкт успешного открытия файла с помощью функции is_open():

if(!out.is_open())

{cout<< “файл не открыт!\n”;

//return 1;

}

Производить операцию открытия файла можно также так:

ofstream out1("test1.txt");

ofstream out2("test2.txt",ios::out);

Параметры у конструкторов классов ifstream, ofstream, fstream совпадают с соответствующими параметрами функции open().

Чтобы закрыть файл после использования необходимо вызвать функцию close(), например:

out1.close();

Пример создания и открытия файла:

#include

using namespace std;

int main()

{ofstream out1("test1.txt");

//или так:

//ofstream out1("test1.txt",ios::out);

out1.close();

return 0;

}
^

Чтение и запись текстовых файлов


Проще всего считывать данные из текстового файла или записывать их в него с помощью операторов << и >>. Например, в следующей программе выполняется запись в файл целого числа и строки:

#include

using namespace std;

int main()

{ofstream out1("test1.txt");

if(!out1)

{cout<< "НЕ удается открыть файл.\n";

return 1;

}

out1 << "Это пример ФАЙЛА. \n";

out1 << 10;

out1.close();

return 0;

}

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

#include

#include

#include

using namespace std;

int main()

{int x; char str[80];

ifstream in("test1.txt");

if(!in)

{cout<< "НЕ удается открыть файл.\n";

return 1;

}

in >> str; in >> x;

cout << str << " " << x << "\n";

in.close();

getch(); return 0;

}

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

Файлы произвольного доступа


Последовательный доступ – наиболее распространенный метод доступа к файлам. Однако, возможен и другой тип доступа.

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

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

Для работы с файлами произвольного доступа используются функции:

write – для записи данных в файл

read – для чтения данных из файла

seekp – для установки позиции чтения-записи.
^

Работа с файлами при использовании визуальных компонент


Некоторые визуальные компоненты, например, Memo, ListBox, ComboBox позволяют во время работы программы загрузить данные из файла непосредственно в компонент или наоборот сохранить данные из компонента в файл.

Например, пусть в форме имеется компонент Memo1 класса TMemo. Этот компонент позволяет вводить произвольные строки текста. Сохранить из него данные в файл можно следующим образом:

Memo1->Lines->SaveToFile("primer1.txt");

А загрузить в него данные из файла можно с помощью инструкции:

Memo1->Lines->LoadFromFile("primer1.txt");

Аналогично производиться работа со строками из списков и полей со списками.
^

Порядок выполнения работы


1. Ознакомиться с теоретическими положениями, приведенными в данных методических указаниях (МУ), а также с конспектом лекций по данной теме.

2. Проверить работу примеров, приведенных в тексте МУ.

3. Разработать 2 программы по своему варианту. Варианты заданий см. в таблице.

^ Таблица 1. Варианты заданий

Вар.

Задание

1

1. Программа просит ввести целые положительные числа M, N. Затем программа открывает текстовый файл, который содержит некоторое количество целых чисел. Далее создается новый файл, в который записываются те числа из открытого файла, которые делятся на M, но не делятся на N.

2. Дан файл, содержащий произвольный текст. Определить, чего в нем содержится больше: русских букв или цифр. Результат записать в новый файл.

2

1. Программа открывает текстовый файл, который содержит некоторое количество целых чисел. Далее создается новый файл, в который записываются все числа из открытого файла за исключением повторяющихся.

2. Дан файл, содержащий произвольный текст. Ввести с клавиатуры слово. Определить, содержится ли заданное слово в тексте. Результат записать в новый файл.

3

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

2. Дан файл, содержащий произвольный текст. Удалить все пробелы из файла. Результат записать в новый файл.

4

1. Программа открывает текстовый файл, который содержит некоторое количество целых чисел. Далее создается новый файл, в который записываются все числа из открытого файла за исключением тех, которые кратны К.

2. Дан файл, содержащий произвольный текст. Определить, сколько раз встречается в нем самое длинное слово. Результат записать в новый файл.

5

1. Программа открывает текстовый файл, который содержит некоторое количество целых чисел. Создаются два новых пустых файла. Все числа, меньшие числа К, записываются в один файл, а числа, большие К – в другой файл.

2. Дан файл, содержащий произвольный текст и некоторая буква. Определить, сколько слов в тексте начинается на указанную букву. Результат записать в новый файл.

6

1. Программа открывает текстовый файл, который содержит некоторое количество целых чисел. Создаются два новых пустых файла. Все элементы файла с нечетными номерами записываются в один файл, а элементы с четными номерами – в другой файл.

2. Дан файл, содержащий произвольный текст. Определить, сколько слов в тексте. Результат записать в новый файл.

7

1. Программа открывает текстовый файл, который содержит некоторое количество целых чисел. Найти разность первого и последнего компонентов файла и записать результат в конец открытого файла.

2. Дан файл, содержащий произвольный текст. Создать новый файл и переписать в него текст из исходного файла, заменив каждую пару подряд идущих символов "а" (т.е. "аа") на "А". Остальные символы и их порядок не должны измениться.

8

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

2. Подготовить текстовый файл Stroka1.txt со строкой на русском языке. Разработать программу, удаляющую все буквы «а» из строки в файле и записывающую строку-результат в новый файл Stroka2.txt.
^

Требования к отчету по работе


Отчет по работе должен содержать: название и цель работы; фамилию, инициалы и номер группы студента, выполнившего ЛР; номер варианта; для каждого из заданий – текст задачи по своему варианту, результаты работы программы для разных наборов исходных данных.

Защита лабораторной работы


При защите данной лабораторной работы необходимо продемонстрировать и объяснить результаты выполнения всех заданий, предъявить отчет по работе и ответить на контрольные вопросы. За защиту лабораторной работы до начала экзаменационной сессии выставляется оценка от 3 до 5 баллов.

Добавить документ в свой блог или на сайт

Похожие:

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №2. 13 Работа с базами данных lotus notes 13...
Проблемы возникают при выборе средств автоматизации документооборота, поскольку в настоящее время существует большое количество программных...

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №3 По дисциплине «Эксплуатационные материалы...
Цель работы: Изучение основных свойств и требований, предъявляемых к моторным маслам

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №1 По дисциплине «Эксплуатационные материалы...
Цель работы: Изучение основных свойств и требований, предъявляемых к автомобильным бензинам

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №2 По дисциплине «Эксплуатационные материалы...
Цель работы: Изучение основных свойств и требований, предъявляемых к дизельным топливам

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №5 Построение модели перцептрона Цель работы
Порядок работы: Средствами доступного языка программирования или с помощью Ехсеl создайте перцептрон с 4 или более входными элементами...

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа Изучение равновесных микроструктур железоуглеродистых...
Печатается по решению редакционно-издательского совета Нижегородского государственного педагогического университета

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconПрограмма по курсу: практикум по программированию в ядре
Постановка задачи на драйвер kLogger. Базовая структура драйвера. Работа с файлами из режима ядра. Инициализация и выгрузка драйвера....

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №4 по дисциплине «организация ЭВМ и систем»
Целью работы является изучение функционирования ацп последовательного счета и параллельного порта пэвм, приобретение навыков экспериментального...

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа 4 Механизм обратного логического вывода в продукционных...
Цель работы: получить навыки в проектировании и программировании интерпретатора продукционных правил, работающего по принципу обратного...

Лабораторная работа Работа с файлами в приложениях на С++ Builder Цель работы: изучение принципов работы с текстовыми файлами в среде программирования С++ Builder iconЛабораторная работа №5 Работа с реляционной базой данных в Microsoft Office Access 2007
Цель работы: Научиться создавать многотабличную реляционную базу данных в субд ms office Access 2007, вносить данные, организовывать...



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
www.lit-yaz.ru
главная страница