Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kurs_7_var.doc
Скачиваний:
2
Добавлен:
03.09.2019
Размер:
601.09 Кб
Скачать

Двоичные файлы в с

В отличии от текстовых файлов, двоичные файлы представляют собой последовательность символов без каких либо разделителей. Эти символы могут отображать объекты различных типов. Что именно хранит двоичный файл, должна знать программа. Обработка двоичных файлов происходит быстрее, чем текстовых. Кроме того, двоичные файлы имеют меньший объем. Но прочитать такой файл при помощи текстового редактора практически не возможно.

Открываются и закрываются двоичные файлы также как и текстовые, но при задании режима открытия файла к спецификатору добавляется символ «b», обозначающий двоичный файл.

Запись и чтение в бинарном файле обычно происходит при помощи операторов fwrite (чтение) и fread(запись).

Дата/время

Тип дата-время определяется стандартным идентификатором TDateTime и предназначен для одновременного хранения и даты, и времени. Во внутреннем представлении он занимает 8 байт и подобно currency представляет собой вещественное число с фиксированной дробной частью: в целой части числа хранится дата, в дробной - время. Дата определяется как количество суток, прошедших с 30 декабря 1899 года, а время - как часть суток, прошедших с 0 часов, так что значение 36444,837 соответствует дате 11.10.1999 и времени 20:05. Количество суток может быть и отрицательным, однако значения меньшие -693594 (соответствует дате 00.00.0000 от Рождества Христова) игнорируются функциями преобразования даты к строковому типу.

Составные типы: структурированные типы, указатели, строки, процедурные, объекты, классы, варианты.

Структурированные типы в свою очередь делятся на:

1. регулярные типы (массивы);

2. комбинированные типы (записи);

3. множественные типы;

4. файловые типы;

Простые типы, описанные выше, определяют различные множества атомарных (неразделимых) значений. Составные, или структурные типы, в отличие от простых, задают множества «сложных» значений; каждое значение из такого множества образует некоторый агрегат (совокупность) нескольких значений другого типа (или других типов). Можно сказать, что составные типы определяют некоторый способ образования новых типов из уже имеющихся, причем отдельные элементы составных значений могут иметь любой, в том числе составной, тип. Таким образом, Паскаль допускает образование структур данных произвольной сложности, позволяя тем самым достичь адекватного представления в программе тех данных, с которыми она оперирует.

Функции и процедуры для работы с датой и временем.

Date

Возвращает текущую дату в формате TDateTime.

DateTimeToFileDate

Конвертирует значение даты и времени формата TDateTime в значение даты и времени формата DOS.

DateTimeToStr

Преобразовывает значение даты и времени формата TDateTime в его строковое представление.

DateTimeToString

Преобразовывает значение даты и времени формата TDateTime в строку, используя заданный формат.

DateTimeToSystemTime

Конвертирует значение даты и времени формата TDateTime Delphi в формат TSystemTime Win32 API.

DateTimeToTimeStamp

Преобразовывает значение даты и времени формата TDateTime в соответствующее значение TTimeStamp.

DateToStr

Преобразовывает значение даты формата TDateTime в ее строковое представление.

DayOfWeek

Возвращает порядковый номер дня недели указанной даты.

DecodeDate

Возвращает отдельно год месяц и день для значения типа TDateTime.

DecodeTime

Возвращает отдельно часы, минуты, секунды и миллисекунды для значения времени указанного в формате TDateTime.

EncodeDate

Преобразовывает отдельные значения года, месяца и дня в значение типа TDateTime.

EncodeTime

Преобразовывает значения часов, минут, секунд и миллисекунд в значение типа TDateTime.

FileDateToDateTime

Преобразовывает DOS переменную "дата-время" в формат TDateTime.

FormatDateTime

Преобразовывает значение даты и времени типа TDateTime в строку заданного формата.

IncMonth

Увеличивает или уменьшает дату на заданное количество месяцев.

IsLeapYear

Определяет, является ли указанный год високосным.

MsecsToTimeStamp

Преобразовывает значение времени в миллисекундах в значение типа TTimeStamp.

Now

Возвращает текущую дату и время в формате TDateTime.

ReplaceDate Только в Delphi 5

Изменяет дату в значении даты и времени типа TDateTime.

ReplaceTime Только в Delphi 5

Изменяет время в значении даты и времени типа TDateTime.

StrToDate

Преобразовывает строковое представление даты в значение типа TDateTime.

StrToDateTime

Преобразовывает строковое представление даты и времени в значение типа TDateTime.

StrToTime

Преобразовывает строковое представление времени в значение типа TDateTime.

SystemTimeToDateTime

Конвертирует значение времени формата Win32 API TSystemTime в значение Delphi-формата TDateTime.

Time

Возвращает текущее значение времени в формате TDateTime.

TimeStampToDateTime

Преобразовывает значение типа TTimeStamp в соответствующее значение типа TDateTime.

TimeStampToMSecs

Подсчитывает суммарное количество миллисекунд в значении типа TTimeStamp.

TimeToStr

Преобразовывает значение времени формата TDateTime в его строковое представление.

Окна форм

  1. Основная форма

Закладка №1

Закладка №2

Закладка №3

Закладка №4

Закладка №5

2. Об авторе

3. задание

4. Заставка

Меню пользователя

Меню пользователя для главной программы

Названия разделов меню

Сведенья

Очистка файла

Выход

О задании

Об авторе

Имена объектов

N1

N2

N3

N4

N5

Меню пользователя для программы “Сведенья ”

Названия разделов меню

Просмотр Задания

Сохранить изменения

Изменение шрифта и стиля

Выход

Имена объектов

view_zadan

Sav_mod

Font_style

Ex_it

Тексты программ:

Библиотека bibl.cpp

//---------------------------------------------------------------------------

#pragma hdrstop

#include <stdio.h>

#include <DateUtils.hpp>

#include "bibl.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

int kol(FILE *f)

{int k=0;

f=fopen("a.dat","rb");

fseek(f,0,2);

k=ftell(f)/sizeof(r);

fclose(f);

return k;

}

void formir(FILE *f,rab mas[],int n)

{f=fopen("a.dat","rb");

for(int k=0;k<n;k++)

{fread(&r,sizeof(r),1,f);

mas[k]=r;}

fclose(f);

}

void sort(rab mas[],int k)

{int i,j; rab z;

for(j=0;j<=k;j++)

for(i=0;i<k-1;i++)

if((AnsiString)mas[i].fam>(AnsiString)mas[i+1].fam)

{(rab)z=(rab)mas[i];

(rab)mas[i]=(rab)mas[j];

(rab)mas[j]=(rab)z;}

}

bibl.h

//---------------------------------------------------------------------------

#ifndef biblH

#define biblH

struct rab{TDateTime d;char fam[15];char im[15];char o[15];char p[10];char dol[15];}r;

FILE *f;

//---------------------------------------------------------------------------

int kol(FILE *f);

void formir(FILE *f,rab mas[],int n);

void sort(rab mas[],int k);

#endif

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]