Задание 3.2. Чтение-запись файлов
3.2.1. В соответствии с вариантом (см. табл. 2) организовать цикл расчета значений и их записи в файл в соответствии с заданным форматом. Файл должен быть создан во время выполнения программы.
Таблица 2.
Вариант |
Формула |
Формат |
1 |
y=2x+5, где x[3..30] c шагом 1 |
По два значения в строке, разделенные запятыми. |
2 |
y=3x+7, где x[1..25] c шагом 2 |
По три значения в строке, разделенные пробелом. |
3 |
y=7x-5x, где x[30..10] c шагом -1 |
По два значения в строке, записанные слитно. |
4 |
y=2x+1, где x[3..20] c шагом 1 |
По четыре значения в строке, разделенные точками. |
5 |
y=3x-8, где x[1..27] c шагом 1 |
По три значения в строке, разделенные тире. |
6 |
y=4x-2x, где x[40..20] c шагом -2 |
По четыре значения в строке, разделенные двоеточием. |
7 |
y=6x+8, где x[3..15] c шагом 3 |
По два значения в строке, разделенные знаком умножения. |
8 |
y=9x+2, где x[10..1] c шагом -1 |
По четыре значения в строке, разделенные знаком сложения. |
9 |
y=7x-4x, где x[30..15] c шагом -1 |
По три значения в строке, записанные слитно. |
10 |
y=9x+6, где x[2..18] c шагом 1 |
По два значения в строке, разделённые косой чертой. |
11 |
y=2x+12, где x[7..17] c шагом 1 |
По два значения в строке, разделённые знаком доллара. |
12 |
y=8x-5x, где x[10..5] c шагом -1 |
По три значения в строке, разделенные восклицательным знаком. |
13 |
y=2x+19, где x[2..12] c шагом 2 |
По четыре значения в строке, разделенные знаком «шарп» (#). |
14 |
y=8x+17, где x[1..15] c шагом 1 |
По три значения в строке, разделенные знаком тильда (~). |
15 |
y=7x-7x, где x[30..20] c шагом -2 |
По два значения в строке разделенные знаком процента. |
16 |
y=9x-2x, где x[1..9] c шагом -1 |
По четыре значения в строке, записанные слитно. |
3.2.2. Записать в заранее подготовленный файл свои ФИО. и группу.
3.2.3. Считать из файла рассчитанные значения и вывести на экран.
Методические указания
Методические указания к пункту 3.1.3.
Для решения задания нужно подключить дополнительно пространства имён System.IO. Подключение:
Для работы с файловой системой применяются пять классов: FileSystemInfo, FileInfo, DirectotyInfo, DriveInfo, Path.
Создание экземпляра класса FileInfo:
Далее рассмотрим применение методов и свойств класса FileInfo.
Определение размера файла. В ниже приведённом примере вывод в переменную и на экран консоли:
Определение папки, в которой расположен файл. В ниже приведённом примере вывод в переменную и на экран консоли:
Определение имени папки, в которой расположен файл. В ниже приведённом примере вывод в переменную и на экран консоли:
Определение атрибутов файла и вывод в переменную и на экран консоли:
Определение время создания файла и вывод на экран консоли:
Определение время последнего открытия файла и вывод на экран консоли:
Определение время последней записи в файл и вывод на экран консоли:
Определение расширения файла и вывод на экран консоли:
Определение существования файла и вывод в переменную и на экран консоли:
Удаление файла вызывается методом Delete. Пример:
Копирование файла. Пример копирования файла в текущую папку:
Копирование файла в указанную папку и содержащаяся в том же месте что и программа:
Перемещения файла в другую папку:
Переименование файла:
Рассмотрим класс DirectoryInfo. Создание экземпляра данного класса можно двумя способами, с помощью конструктора указав путь или как было указано выше, с помощью экземпляра класса FileInfo:
Далее рассмотрим применение методов и свойств класса DirectoryInfo.
Создание папки с помощью создания элемента класса DirectoryInfo с указанием пути создаваемой папки и применением метода Create. В примере создается папка с именем “2” в папке с программой:
Также можно воспользоваться методом CreateSubdirectory который применяется для создания папки в пути указанном при создании экземпляра класса DirectoryInfo. Пример:
Перемещение папки в другую папку. Пример, перемещение из текущего месторасположения папки “2” в папку “1”:
Переименование папки из 2” в “1”:
Рассмотрим класс DriveInfo. Создание экземпляра данного класса осуществляется с помощью конструктора с передачей в качестве параметра имени диска.
Далее рассмотрим применение методов и свойств класса DriveInfo.
Определение формата файловой системы и вывод на консоль:
Определение имя диска и вывод на консоль:
Определение метки диска и вывод на консоль:
Определение размера диска в байтах и вывод на консоль:
Определение свободного размера и вывод на консоль:
Методические указания к пункту 3.2.1.
Для определения значений необходимо организовать цикл, так как число операций известно, то можно воспользоваться регулярным циклом for (так же можно и осуществить реализацию с помощью итерационного цикла while). В примере цикл реализует формулу y=2x+5, где x[1..10] c шагом 1:
Для того что бы записать информацию в файл необходимо создать новый файл, как приведено в примере:
Для записи необходимо использовать экземпляр класса StreamWriter, в конструкторе в качестве параметра указать файловый поток для записи:
Метод Write записывает переменные строкового и символьного типа в файл, а WriteLine осуществляет запись и перевод на новую строку. Пример, в файл записывается “Y=” и результаты вычислений и осуществляется переход на новую строку.
После записи необходимо закрыть открытые потоки с помощью метода Close:
Методические указания к пункту 3.2.2.
Для того что бы записать информацию в уже существующий файл необходимо его открыть с возможностью записи. Пример:
Или воспользоваться более короткой записью с помощью метода OpenWrite:
Сама операция записи будет осуществляться с помощью класса StreamWriter как указано в методических указаниях к пункту 3.2.1
Методические указания к пункту 3.2.3.
Для того что бы считать информацию из файла необходимо использовать экземпляр класса StreamReader, в конструкторе в качестве параметра указать файловый поток для записи:
Для чтения применяется метод ReadLine который считывает и возвращает одну строку и перемещает указатель на строку ниже. Пример использования:
Для того что бы считать весь файл нужно организовать цикл while. В приведенном примере с помощью цикла осуществляется вывод на консоль: