Запись текстовых файлов

Имеются две операции записи, которые вы можете выполнять с текстовыми файлами: Write и WriteLn. Write посылает данные, которые вы специфицируете, в файл. WH-teLn делает то же самое, что и Write, но добавляет, также, маркер конца строки к файлу после записанных данных. Данные, которые вы можете выводить, используя эти процедуры, ограничиваются только пригоршней типов данных: Char, String, Integer, Word, Longint, Byte, Real или Boolean.

Таким образом, чтобы вывести строку в текстовый файл, вы должны были бы написать:

Write (MyTextFile, 'Привет мир');
Если строка находилась в переменной, на подобие следующего: var HelloString : String;
begin
HelloString := 'Hello, world';
тогда, чтобы вывести ее, вы должны были бы записать: Write (MyTextFile, HelloString);

Write и WriteLn являются странными процедурами в том смысле, что они принимают переменное число параметров - нечто такое, чего вы почти никогда не увидите в Object Pascal. Первым параметром всегда должно быть имя файла, который вы хотите вывести, а остальными параметрами (если таковые имеются) может быть любое число переменных, типов, описанных выше. Например, чтобы вывести String (Строка) и целое число, вы должны были бы написать:

Write (MyTextFile, HelloString, Mylnteger);

9 5-278

Если предположить, что Mylnteger было назначено значение 25, выходной файл содержал бы:

Hello, world 25

Специфицирование ширины поля

Много раз вам захочется осуществить вывод колонками (в печатном отчете, например) и вам захочется отецифшптровать ширину конкретного поля вывода. Любой параметр Write может иметь необязательный указатель ширины, подключамый к нему путем помещения после параметра двоеточия и ширины поля. Например, чтобы вывести строку из четырёх чисел, которые должны быть расположены равномерно на 10-символьных интервалах, вы должны написать:

WriteLn (MyTextFile, Numberl:10, Number2:10, Number3:10, Number4:10);

Если переменные имеют значения 100, 200, 300 и 400, соответственно, то вы получи те:

100 200 300 400

Write выравнивает значения по правому краю, чтобы они соответствовали определенной ширине колонки, что делает построение таблиц моментальным делом. Например, если вы написали:

WriteLn (100:10, 200:10, 300:10, 400:10); WriteLn (1234:10, 5678:10, 1:10, 15:10);

Ваш вывод будет выглядеть следующим образом:

100 200 300 400 1234 5678 1 15

Указатель .-ширина определяет минимальную ширину поля вывода. Write не усекает номер, чтобы он соответствовал стецифицированному полю. В вышеприведенном примере, если бы вы специфицировали для ширины поля 2, не 10, вы получили бы слияние всех полей вывода вместе, без каких-либо пробелов между различными значениями:

100200300400

Вы можете, также, использовать указатель .ширина для типов String (Строка), но они будут выровнены по правому краю, что лично я нахожу несколько странным. Поэтому, если бы вы осуществляли вывод колонки имен используя ширину равную 10, то получили бы следующее:

Jeff

Jim Diane Don Michelle

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


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31