( теперь считывание всех ваписей } while not Eof (t) do begin with Rec do ReadLn (t, Day, с, { освобождение лишнего пространства } Time,

AlarmSignals, TroubleSignals, NumberOfSignals, OperatorSignals); Write (f, Rec);
end;
Close (f); Close (t);
end;
end;

После того, как вы введете этот код, нажмите F2, чтобы сохранить файл, назвав его ALMSTATS. PAS.

Действительно, в Almstats нет никакой магии. Это совершенно прямолинейная подпрограмма управления файлами. Здесь имеются только две вещи, которые могут вас озадачить.

Процедуры Lookup и Update вычисляют номер записи, умножая параметр Day на 24 и затем прибавляя параметр Hour. Это соответствует формату файла: 24 записи в день. Вспомните, что дни и часы нумеруются начиная сО - анес1- что делает такой подход работающим.

Другая вещь, которая может вас озадачтиь, находится в процедуре Import, где у меня имеется следующий оператор Read:

ReadLn(t. Day, с, { освобождение лишнего пространства } Time, AlarmSignals, TroubleSignals, NumberOfSignals, OperatorSignals);

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

SUN 00:00 56 11 329 57

Поскольку Read не понимает понятия разделителя полей при считывании переменных String, нам необходимо считывать символ пробела между днем и временем (первые два поля в записи) во временную пременную. Если бы мы не сделали этого, тогда Read пропустил бы один символ, когда он попытался бы считать первое число (56 в этом примере), и мы получили бы ошибку выполнения при вводе/выводе "Invalid numeric format" ("Неверный численный формат").

После того, как вы ввели модуль Almstats и сохранили свою работу, вы можете двигаться вперед и нажать F9, чтобы запустить программу. Первое, что вы должны сделать, это щелкнуть мышью на кнопке Import, чтобы создать файл тревожной статистики из файла ALMSTATS TXT на дискете с листингами. Затем, попытайтесь просмотреть и доплнить несколько записей, отпечатав и экспортировать файл.

КОНЕЦ ФАЙЛА

Имеется еще один тип файла, который мы не обсуждали - файл не имеющий типа, который дает возможность читать и записывать файлы, содержащие записи переменной длины. Файлы не имеющие типа являются общими предками и текстовых файлов и типовых файлов, но непосредственный доступ к файлам, не имеющим типа, является весьма сложной техникой программирования, и это предмет для обсуждения в другой раз. Если вы интересуетесь файлами не имеющими типа, обратитесь к диалогу подсказки для функций BlockRead и BlockWrite

Типы файлов, которые мы обсудили - текстовые файлы и файлы записей - должны позволить вам реализовать простые программы баз данных. Для более развитых приложений баз данных вам возможно захочется воспользоваться компонентами баз данных Delphi, о которох мы поговорим в Главе 13 и последующих.

^Примечание. ComboBox - комбинированное диалоговое окно (прим. перев.)

ТОЧКИ СВЕТА, Щ ПЯТНА НА БУМАГЕ

Джефф Дантеманн

Использование архитектуры графического полотна Delphi - это в действительности та же графика на экране или на бумаге.


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

Программирование в среде 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