Опубликован: 09.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Российская международная академия туризма
Лекция 3:

Текстовой формат данных для Smartdevice. Ввод-вывод в текстовые файлы

< Лекция 2 || Лекция 3: 123 || Лекция 4 >
Аннотация: В лекции описаны назначение и структура файла *.ini. Рассмотрен процесс загрузки данных из текстового файла и сохранение данных в текстовый файл. Описан пример работы с текстовыми файлами

Для доступа к данным в текстовом файле используется поставщик OLE DB Jet, который загружает содержимое текстового файла в локальную таблицу и отображает ее содержимое в специально предназначенном элементе экранной формы. Локальные таблицы могут быть организованы по- разному, поэтому невозможно определить все характеристики текстового файла через строку подключения. Для решения этой проблемы используется дополнительный, расположенный в том же каталоге, что и текстовой файл, файл *.ini в котором отражается следующая информация о локальной таблице текстового файла:

  • Имя файла:
  • Формат файла;
  • Имена полей, их длина и тип данных;
  • Кодировка символов;
  • Специальные преобразования типов данных

Отметим, что в строке (записи) файла *.ini "Формат файла" указываются разделители полей: запятая; нестандартный разделитель определенный пользователем; фиксированная длина поля или табулятор.

Что касается элементов экранных форм, предназначенных для отражения данных, то их существует несколько вариантов, привязку данных к которым рассмотрим ниже.

Ввод-вывод в текстовые файлы

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

Разработка: Приложение "Калькулятор цены автомобиля" для автоматического подсчета цены автомобиля в зависимости от комплектации.

Состав выполняемых функций:

  • Файловые операции: открыть, сохранить, сохранить как, закрыть
  • Алгоритмы: калькулятор цены автомобиля, редактор цен
  • Информационно-справочные: О программе

Наращивание функциональности не предусматривается.

Защита данных предусматривается только от неквалифицированных действий пользователей.

В качестве входных данных используется отдельный текстовой файл по каждой марке автомобиля, структура данных включает одно поле, набор из 22 записей, тип данных определяется программно. Выходные данные программы – графическое отображение результатов в виде набора текстовых полей экранных форм для SmartDevice.

Шаг 1. Структура данных

В программе используется фиксированный набор данных текстовых полей (textBox), которые имеют следующие обозначения (label):

  • Владелец автомобиля
  • Телефон владельца
  • Цена владельца
  • Комплектация
  • Базовая цена
  • Усилитель руля
  • Кондиционер
  • Тонированные стекла
  • Дисковые тормоза
  • Сигнализация
  • Фаркоп
  • Противотуманные фары
  • Диски легкосплавные
  • Марка автомобиля

Шаг 2. Разработка графического интерфейса

Используется только одна форма Form1 (свойство Text = "ADO.NET и доступ к данным" . Калькулятор). В форме, в связи с ограниченностью экрана, размещается набор закладок tabControl1 с двумя закладками tabPage1 и tabPage2. Примерный дизайн закладок приведен на рис. 2.1 и 2.2

На закладке "Комплектация" (рис.2.1) размещаются 8 флажков ( checkBox ) маркировки состава комплектующих (изначально свойство флажка Checked = False ) и кнопка (button) "ОК", видимая только в режиме "Редактора" (изначально свойства кнопки Visible = False, Text = OK ).


Рис. 2.1.

Рис. 2.2.

Невидимыми элементами управления графического интерфейса являются Диалоги открытия (openFileDialog1) и сохранения (saveFileDialog1) файла, Главное меню (mainMenu1), горизонтальная линейка которого имеет два пункта – "Файл" и "О программе" (видно на рис. 2.1 и 2.2). Набор опций меню "Файл" включает: Открыть, Сохранить, Сохранить как, Редактор цен и Выход. Пункт меню "О программе" опций не имеет.

Шаг 3. Расширяем состав системных библиотек

using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using System.Data;
// Добавляем библиотеку работы с файлами
using System.IO;

Шаг 4. Включаем переменные для хранения результатов вычислений в public class Form1 : System.Windows.Forms.Form

string file_name; // переменная хранения имени файла с данными
int appe_acc=0; // переменная редактируемой цены комплектации 
int base_acc=0; // переменная базовой цены автомобиля
int comp_acc=0; // переменная цены комплектации автомобиля

Шаг 5. Загружаем данные из файла (по умолчанию)

public Form1() 
{
// Required for Windows Form Designer support
InitializeComponent();
file_name="price.txt"; // имя файла, загружаемого по умолчанию
file_read(); // вызываем функцию чтения данных из файла
}

Шаг 6. Создаем функцию чтения данных из текстового файла

private void file_read() 
{
FileStream fin;		
try {
/* если файл доступен для чтения, то определяем переменную, в 
которой задаем имя открываемого файла */
fin=new FileStream(file_name,FileMode.Open);
}
catch (IOException exc) {
MessageBox.Show ("Невозможно открыть файл \n"+ file_name,"Ошибка");
return;
}

Рис. 2.3.

На этом шаге можно закрыть функцию фигурной скобкой "}" и откомпилировать программу. При запуске откомпилированной программы, так как файл price.txt не существует, то должно срабатывать исключение IOException и выдаваться сообщение – рис.2.3

Шаг 7. Создаем процедуру сохранения файла

Опция "Сохранить" (в нашем примере - menuItem4_Click ) главного меню предназначена для сохранения данных в файле price.txt – создаем код процедуры:

private void menuItem4_Click(object sender, System.EventArgs e)
{
file_name="price.txt"; // задаем имя файла по умолчанию
file_write(); // вызываем функцию записи данных в файл
}
< Лекция 2 || Лекция 3: 123 || Лекция 4 >
jo jojo
jo jojo
Нидерланды
Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург