Текстовые файлы в C#

Содержание

Слайд 2

Классы для работы с файлами Для работы с классами необходимо подключить

Классы для работы с файлами

Для работы с классами необходимо подключить пространство

имен System.IO
using System.IO
Классы:
StreamWriter - Реализует TextWriter для записи символов в поток в определенной кодировке.
StreamReader - Реализует TextReader, который считывает символы из потока байтов в определенной кодировке.
File - Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов
Слайд 3

Методы класса File CreateText - Создается или открывается файл для записи

Методы класса File

CreateText - Создается или открывается файл для записи текста

в кодировке UTF-8.
AppendText - Создает StreamWriter добавляющий в существующий файл текст в кодировке UTF-8.
OpenText - Открывает для чтения существующий файл, содержащий текст в кодировке UTF-8.
Exists - Определяет, существует ли заданный файл.
ReadAllText(String) - Открывает текстовый файл, считывает все строки файла и затем закрывает файл
ReadAllLines(String) - Открывает текстовый файл, считывает все строки файла и затем закрывает файл.
WriteAllText(String, String) - Создает новый файл, записывает в него указанную строку и затем закрывает файл. Если целевой файл уже существует, он будет переопределен.
WriteAllLines(String, String[]) - Создает новый файл, записывает в него указанный массив строк и затем закрывает файл.
Слайд 4

Методы класса StreamWriter StreamWriter(String) - Инициализирует новый экземпляр класса StreamWriter для

Методы класса StreamWriter

StreamWriter(String) - Инициализирует новый экземпляр класса StreamWriter для указанного

файла с помощью кодировки по умолчанию и размера буфера.
Write(String) - Записывает в поток строку.
WriteLine(String) - Записывает в текстовую строку или поток строку, за которой следует признак конца строки.
Close - Закрывает текущий объект StreamWriter и базовый поток.
Слайд 5

Методы и свойства класса StreamReader StreamReader(String) - Инициализирует новый экземпляр класса

Методы и свойства класса StreamReader

StreamReader(String) - Инициализирует новый экземпляр класса

StreamReader для указанного имени файла.
ReadToEnd - Считывает все символы, начиная с текущей позиции до конца потока.
ReadLine - Выполняет чтение строки символов из текущего потока и возвращает данные в виде строки.
EndOfStream - Получает значение, определяющее, находится ли позиция текущего потока в конце потока.
Слайд 6

Примеры Создание или открытие файла и построчное добавление записей if(File.Exists(@"d:\vbbook.txt")) writefl

Примеры

Создание или открытие файла и построчное добавление записей
if(File.Exists(@"d:\vbbook.txt"))
writefl =

File.AppendText(@"d:\vbbook.txt");
else
writefl = File.CreateText(@"d:\vbbook.txt");
writefl описан начале как
StreamWriter writefl;
Слайд 7

Примеры Построчная запись в файл writefl.WriteLine(textBox1.Text); В конце записи следует закрыть файл: writefl.Close();

Примеры

Построчная запись в файл
writefl.WriteLine(textBox1.Text);
В конце записи следует закрыть файл:
writefl.Close();

Слайд 8

Примеры Открытие файла для чтения if (File.Exists(@"d:\vbbook.txt")) readfl = new StreamReader(@"d:\vbbook.txt");

Примеры

Открытие файла для чтения
if (File.Exists(@"d:\vbbook.txt"))
readfl = new StreamReader(@"d:\vbbook.txt");
else MessageBox.Show("файла

нет");
В начале readfl описан как
StreamReader readfl;
Слайд 9

Примеры Построчное чтение из файла if (readfl.EndOfStream == false) label1.Text =

Примеры

Построчное чтение из файла
if (readfl.EndOfStream == false)
label1.Text = readfl.ReadLine();
else

label1.Text = "end";
В конце чтения надо закрыть файл:
readfl.Close();
Слайд 10

Примеры Чтение файла в массив строк strmas = File.ReadAllLines(@"d:\vbbook.txt"); В начале

Примеры

Чтение файла в массив строк
strmas = File.ReadAllLines(@"d:\vbbook.txt");
В начале массив описан как:
string[]

strmas ;
Слайд 11

Примеры Запись текста из текстового поля в файл File.WriteAllText(@"d:\vbbook.txt",textBox1.Text);

Примеры

Запись текста из текстового поля в файл
File.WriteAllText(@"d:\vbbook.txt",textBox1.Text);

Слайд 12

Создание тестов

Создание тестов

Слайд 13

Структура текстового файла с тестом test.txt Вопрос1 ответ1 3 ответ2 4

Структура текстового файла с тестом test.txt

Вопрос1
ответ1
3
ответ2
4
ответ3
5
Вопрос2
ответ4
6
ответ5
2
ответ6
3
Вопрос3
ответ7
4
ответ8
3
ответ9
5

Слайд 14

Форма

Форма

Слайд 15

Описание структуры struct vopros {public string vopr; public string otv1; public

Описание структуры

struct vopros
{public string vopr;
public string otv1;
public int

bal1;
public string otv2;
public int bal2;
public string otv3;
public int bal3;
};
Слайд 16

Описание данных public partial class Form1 : Form { vopros[] Test; int k,i,sum,summax;

Описание данных

public partial class Form1 : Form
{
vopros[] Test;

int k,i,sum,summax;
Слайд 17

Начало тестирования string[] str; str = File.ReadAllLines(@"d:\test.txt"); int n = str.Length;

Начало тестирования

string[] str;
str = File.ReadAllLines(@"d:\test.txt");
int n = str.Length;

k = n / 7;
Test = new vopros[k];
int m = 0;
for (int j = 0; j < k; j++)
{
Test[j].vopr = str[m]; m++;
Test[j].otv1 = str[m]; m++;
Test[j].bal1 = Convert.ToInt32(str[m]); m++;
Test[j].otv2 = str[m]; m++;
Test[j].bal2 = Convert.ToInt32(str[m]); m++;
Test[j].otv3 = str[m]; m++;
Test[j].bal3 = Convert.ToInt32(str[m]); m++;
}
i = 0;
sum = 0;
summax = 0;
vivod();
Слайд 18

Процедура Vivod void vivod() { label1.Text = Test[i].vopr; radioButton1.Text = Test[i].otv1;

Процедура Vivod

void vivod()
{
label1.Text = Test[i].vopr;
radioButton1.Text = Test[i].otv1;

radioButton2.Text = Test[i].otv2;
radioButton3.Text = Test[i].otv3;
if (Test[i].bal1>Test[i].bal2 && Test[i].bal1>Test[i].bal3) summax+=Test[i].bal1;
if (Test[i].bal2>Test[i].bal2 && Test[i].bal2>Test[i].bal3) summax+=Test[i].bal2;
if (Test[i].bal3>Test[i].bal1 && Test[i].bal3>Test[i].bal2) summax+=Test[i].bal3;
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
}
Слайд 19

Кнопка Далее private void button1_Click(object sender, EventArgs e) { if (radioButton1.Checked)

Кнопка Далее

private void button1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked)

sum += Test[i].bal1;
if (radioButton2.Checked) sum += Test[i].bal2;
if (radioButton3.Checked) sum += Test[i].bal3;
i++;
if (i < k) vivod();
else
{
button1.Enabled = false;
}
}