- •Государственное образовательное учреждение высшего профессионального образования «Тульский государственный университет»
- •Конспект лекций
- •Информатика
- •Содержание
- •Системы счисления. Позиционные и непозиционные системы
- •2.1. Кодирование текста
- •2.2. Растровая и векторная графика
- •2.3. Представление цвета
- •2.4. Представление звука. Ацп. Цап
- •3.1. Принцип фон Неймана
- •3.2. Общая структурная схема процессора
- •3.3. Арифметико-логическое устройство (алу)
- •3.4. Адрес ячейки памяти
- •3.5. Регистры процессора
- •3.6. Как процессор складывает два числа
- •4.1. Эволюция средств вычислений
- •4.2. Эволюция эвм
- •4.3. Поколения эвм
- •5.1. Эволюция персональных эвм
- •5.2. Классификация эвм
- •6.1. Программное обеспечение
- •6.2. Функции ос
- •6.3. Трансляция программ
- •6.5. Декомпозиция
- •6.6. Объектно-ориентированное программирование
- •7.1. Понятие алгоритма. Свойства алгоритма
- •7.2. Способы записи алгоритма: псевдокод, блок-схема
- •7.3. Преобразование программы в машинные коды. Интерпретаторы и компиляторы
- •7.4. Оптимизация кода для повышения эффективности
- •7.5. Структура ide. Отладка программ
- •8.1. Описание структуры проекта
- •8.2. Описание структуры модуля
- •8.3. Описание элементов программ
- •8.4. Алфавит языка программирования
- •8.5. Идентификаторы, константы, выражения
- •9.1. Целая и вещественная арифметика
- •9.2. Приоритет операций
- •9.3. Встроенные функции. Построение сложных выражений
- •10.1. Встроенные типы данных. Целые типы. Представление знака числа. Арифметическое переполнение
- •10.1.1. Встроенные типы данных
- •10.1.2. Целые типы
- •10.1.3. Представление знака числа
- •10.1.4. Арифметическое переполнение
- •10.2. Вещественные типы. Сопроцессор
- •10.3. Текстовые типы
- •10.4. Логический тип
- •10.5. Оператор присваивания. Совместимость типов по присваиванию
- •11.1. Устройства вывода
- •11.2. Объекты, обеспечивающие вывод данных на экран
- •11.2.1. Перечень компонентов ввода и отображения текстовой информации
- •11.2.2. Отображение текста в надписях компонентов Label, StaticText и Panel
- •11.2.3. Окна редактирования Edit и MaskEdit
- •11.2.4. Многострочные окна редактирования Memo и RichEdit
- •11.2.5. Группа радиокнопок – компонент RadioGroup
- •Ввод и отображение целых чисел — компоненты UpDown и SpinEdit
- •11.2.6. Компоненты выбора из списков — ListBox, CheckBox, CheckListBox и ComboBox
- •11.2.7. Таблица строк — компонент StringGrid
- •11.2.8. Функция InputBox
- •11.2.9. Процедура ShowMessage
- •11.3. Вывод в текстовый файл
- •11.3.1. Объявление файла
- •Назначение файла
- •11.3.2. Вывод в файл
- •11.3.3. Открытие файла для вывода
- •11.3.4. Ошибки открытия файла
- •11.3.5. Закрытие файла
- •11.4. Устройства ввода. Ввод с клавиатуры. Реакция на действия пользователя
- •11.4.1. Устройства ввода
- •11.5. Ввод из файла
- •11.5.1. Открытие файла
- •11.5.2. Чтение данных из файла
- •11.5.3. Чтение чисел
- •11.5.4. Чтение строк
- •12.1. Ветвление
- •12.2. Логические (булевские) операции
- •12.3. Составной оператор
- •12.4. Оператор ветвления if
- •12.5. Оператор ветвления case
- •12.6. Исключительные ситуации
- •13.1. Функции цикла в программе. Циклы с пред- и постусловием
- •13.2. Оператор While. Вечные циклы
- •13.3. Вечные циклы
- •13.4. Оператор repeat. Процедуры inc и dec
- •13.5. Цикл с переменной for
- •13.6. Команды break и continue
- •13.7. Вложенные циклы
- •13.8. Примеры задач с циклами
- •14.1. Объявление массива
- •14.2. Операции с массивами
- •14.2.1. Вывод массива
- •14.2.2. Ввод массива
- •14.2.3. Поиск минимального (максимального) элемента массива
- •14.2.4. Поиск в массиве заданного элемента
- •14.3. Ошибки при использовании массивов
- •15.1. Создание пользовательских функций. Передача аргументов
- •15.2. Глобальные и локальные переменные
- •15.3. Примеры написания пользовательских функций
- •15.4. Процедуры
- •15.5. Процедуры программиста
- •15.6. Передача параметров по ссылке и значению
- •15.7. Перегрузка процедур и функций
- •15.8. Упреждающее объявление процедур и функций (forward)
- •16.1. Основные понятия компьютерной графики
- •16.2. Получение сведений о режимах экрана. Эффекты прозрачности
- •16.3. Графические построения
- •16.4. Построение графиков функций
- •16.5. Использование компонента tChart
- •16.6. Обновление изображения
- •17.1. Анимация на основе операции xor
- •17.2. Буферизация фона
- •17.3. Работа с таймером
- •18.1. Виды диалога
- •18.2. Стандарты пользовательского интерфейса
- •18.2.3. Размеры окон
- •18.2.2. Размеры элементов управления
- •Надписи на элементах управления:
- •18.2.4. Схема расположения
- •19.1. Технология mmx
- •19.2. Мультимедийные аппаратные интерфейсы
- •20.1. Тест Тьюринга
- •20.2. Представление знаний и вывод на знаниях
- •20.3. Модели представления знаний
- •20.4. Вывод на знаниях
- •21.1. Основы телекоммуникаций и распределенной обработки информации
- •21.2. Каналы связи
- •21.2.1. Аналоговые и цифровые каналы
- •21.2.2. Коммутируемые и выделенные каналы
- •21.2.3. Двух- и четырехпроводные каналы
- •21.3. Семиуровневая модель osi
- •21.3.1. Физический уровень
- •21.3.2. Канальный уровень
- •21.3.3. Верхние уровни osi
- •21.4. Управление потоком
- •21.5. Технология "клиент-сервер"
- •22.1. Методы защиты информации
- •22.2. Основы криптографии
- •22.3. Симметричные криптосистемы
- •22.3.1.Моно- и многоалфавитные подстановки
- •22.3.2. Перестановки
- •22.3.3. Гамирование и блочные шифры
- •22.4. Алгоритмы цифровой подписи
- •22.5. Сжатие данных
- •22.5.1. Методы сжатия изображений
- •22.6. Понятие об экономических и правовых аспектах информационных технологий
11.3. Вывод в текстовый файл
11.3.1. Объявление файла
Файл — это именованная структура данных, представляющая собой последовательность элементов данных одного типа, причем количество элементов последовательности практически не ограничено. В первом приближении файл можно рассматривать как массив переменной длины неограниченного размера.
Как и любая структура данных (переменная, массив) программы, файл должен быть объявлен в разделе описания переменных. При объявлении файла указывается тип элементов файла.
В общем виде объявление файла выглядит так:
Имя: file of ТипЭлементов;
Примеры:
res: file of char; // файл символов
koef: file of real; // файл вещественных чисел
f: file of integer; // файл целых чисел
Файл, компонентами которого являются данные символьного типа, называется символьным, или текстовым. Описание текстового файла в общем виде выглядит так:
Имя: TextFile;
где:
-
имя — имя файловой переменной;
-
TextFile — обозначение- типа, показывающее, что Имя — это файловая переменная, представляющая текстовый файл.
-
Назначение файла
Объявление файловой переменной задает только тип компонентов файла. Для того чтобы программа могла выводить данные в файл или считывать данные из файла, необходимо указать конкретный файл, т. е. связать файловую переменную с конкретным файлом (задать имя файла).
Имя файла задается вызовом процедуры AssignFile, связывающей файловую переменную с конкретным файлом.
Описание процедуры AssignFile выглядит следующим образом:
AssignFile(var f, ИмяФайла: string)
Имя файла задается согласно принятым в Windows правилам. Оно может быть полным, т. е. состоять не только непосредственно из имени файла, но и включать путь к файлу (имя диска, каталогов и подкаталогов).
Ниже приведены примеры вызова процедуры AssignFile:
AssignFile(f, 'a:\result.txt');
AssignFile(f, '\students\ivanov\korni.txt');
fname:=('otchet.txt'); AssignFiie(f,fname);
11.3.2. Вывод в файл
Непосредственно вывод в текстовый файл осуществляется при помощи инструкции write или writeln. В общем виде эти инструкции записываются следующим образом:
write (ФайловаяПеременная, СписокВывода) ;
writeln(ФайловаяПеременная, СписокВывода);
где:
-
ФайловаяПеременная — переменная, идентифицирующая файл, в который выполняется вывод;
-
СписокВывода -- разделенные запятыми имена переменных, значения которых надо вывести в файл. Помимо имен переменных в список вывода можно включать строковые константы.
Например, если переменная f является переменной типа TextFile, то инструкция вывода значений переменных x1 и х2 в файл может быть такой:
write(f, 'Корни уравнения', xl, х2);
Различие между инструкциями write и writeln состоит в том, что инструкция writeln после вывода всех значений, указанных в списке вывода, записывает в файл символ "новая строка".
11.3.3. Открытие файла для вывода
Перед выводом в файл его необходимо открыть. Если программа, формирующая выходной файл, уже использовалась, то возможно, что файл с результатами работы программы уже есть на диске. Поэтому программист должен решить, как поступить со старым файлом: заменить старые данные новыми или новые данные добавить к старым. Способ использования старого варианта определяется во время открытия файла.
Возможны следующие режимы открытия файла для записи в него данных:
-
перезапись (запись нового файла поверх существующего или создание нового файла);
-
добавление в существующий файл.
Для того чтобы открыть файл в режиме создания нового файла или замены существующего, необходимо вызвать процедуру Rewrite(f), где f — файловая переменная типа TextFile.
Для того чтобы открыть файл в режиме добавления к уже существующим данным, находящимся в этом файле, нужно вызвать процедуру Append (f), где f — файловая переменная типа TextFile.
На рис.11.5 приведено диалоговое окно программы, которая выполняет запись или добавление в текстовый файл.
Рисунок 11.5 - Диалоговое окно программы записи-добавления в файл
В листинге 1 приведена процедура, которая запускается нажатием командной кнопки Записать. Она открывает файл в режиме создания нового или замещения существующего файла и записывает текст, находящийся в поле компонента Memo1.
Имя файла нужно ввести во время работы в поле Editl. Можно задать предопределенное имя файла во время разработки формы приложения. Для этого надо присвоить значение, например test.txt, свойству Edit1.Text.
Листинг 1. Создание нового или замещение существующего файла
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
i: integer;
begin
fName := Editl.Text;
AssignFile(f, fName);
Rewrite(f); // открыть для перезаписи
// запись в файл
for i: =0 to Memol.Lines.Count do // строки нумеруются с нуля
writeln(f, Memol.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg('Данные ЗАПИСАНЫ в файл ',mtlnformation,[mbOk],0);
end;
В листинге 2 приведена процедура, которая запускается нажатием командной кнопки: «Добавить». Она открывает файл, имя которого указано в поле Edit1, и добавляет в него содержимое поля Memol.
Листинг 2. Добавление в существующий файл
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80];.// имя файла
i: integer; begin
fName := Editl.Text;
AssignFile(f, fName);
Append(f); // открыть для добавления
// запись в файл
for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля
writeln(f, Memo1.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg('Данные ДОБАВЛЕНЫ в файл ',mtInformation,[mbOk],0);
end;