Описание модуля Base64
----------------------------------------------------------------------------
Procedure CodeBase64 (InFile,OutFile:String);
Выполняет кодирование файла InFile в Base64. Результат сохраняется в файле
OutFile.
Procedure DeCodeBase64(InFile,OutFile:String);
Выполняет декодирование файла InFile в Base64. Результат сохраняется в
файле OutFile.
Описание модуля CfrRd3
----------------------------------------------------------------------------
Модуль содержит обьект TCfgReader - обьект по работе с конфигом.
PCfgReader=^TCfgReader;
TCfgReader=object(TObject)
Error:boolean;
PCfgCol:PStringCollection;
Constructor Init(CfgFileName:string);
Destructor Done; virtual;
Procedure GetCfgFlag(CfgFlagName:string;
var CfgValue:string);
Function sGetFlag(CfgFlagName:string):string;
Function nGetFlag(CfgFlagName:string):longint;
Function rGetFlag(CfgFlagName:string):real;
end;
Описание полей и методов обьекта:
Error:boolean - переменная, являющаяся флагом ошибки. Error=TRUE индицирует
ошибку при чтении/обработке конфига.
PCfgCol:PStringCollection - коллекция строк конфига.
Constructor Init(CfgFileName:string) - конструктор. На вход передается им
файла конфигурации.
Destructor Done - деструктор
Procedure GetCfgFlag(CfgFlagName:string; var CfgValue:string) - получить
значение переменной из конфига.
Параметры: CfgFlagName - имя переменной конфига.
CfgValue - строка со значением переменной.
Если переменная CgfFlagName не найдена в конфиге -
в CfgValue вернется пустая строка.
Function sGetFlag(CfgFlagName:string):string - получить значение переменной
конфига в виде строки
Function nGetFlag(CfgFlagName:string):longint - получить значение
переменной конфига в виде целого числа
Function rGetFlag(CfgFlagName:string):real - получить значение переменной
конфига в виде дробного числа.
Вспомогательная функци
Function ReadConfigFile(ConfigFile:String):PCfgReader;
Возвращает указатель на обьект TCfgReader или nil при ошибке чтения конфига.
Синтаксис текстого конфигурационного файла файла:
; This is comment string
MyStrValue=This is my str value!!! ; комментарий
MyIntValue=12345 ;
MyFloatValue=10.23 ;
MyUnavailValue= ; переменная как пустая строка.
Описание модуля CRC
----------------------------------------------------------------------------
Модуль для расчета CRC16/CRC32.
Функции по получению значения для очередного байта/слова из входного потока.
Напрямую использовать данные функции бессмысленно.
Function CRC16(cp: Byte; crc: Word): Word;
Function CRC32(value: Byte; crc: LongInt):LongInt;
Function CRCend( crc : LongInt ) : LongInt;
Procedure InitTablesDefault;
Инициализация таблиц для расчета CRC по умолчанию
Procedure InitCrc16Table(TablePtr:PCrc16Tab);
Инициализация таблицы для расчета CRC16. Может быть использована при необхо-
димости задания таблицы расчета CRC пользователем.
Procedure InitCrc32Table(TablePtr:PCrc32Tab);
Инициализация таблицы для расчета CRC32. Может быть использована при необхо-
димости задания таблицы расчета CRC пользователем.
Function FileCRC16(FileName:String):Word;
Расчет CRC16 для файла FileName.
Function FileCRC32(FileName:String):Longint;
Расчет CRC32 для файла FileName.
Описание модуля FACRYPT
----------------------------------------------------------------------------
Function GenPassword(MaxLen:byte):String - функция по генерации пароля из
случайного набора символов (диапазон допустимых для парол
символов за дается во множестве PswChars)
Procedure GenKeyFile(MaxLen:Word;FileName:String) - процедура генерации
ключевого файла.
Procedure CriptFile_Psw(Psw,SourceFile,DestFile:String; CriptFlag:boolean)
- процедура по шифрофке/расшифровке файла с использованием пароля.
Psw - пароль
SourceFile,DestFile - исходный и зашифрованный файлы
соответственно
CriptFlag - если TRUE то выполняется шифрование иначе - дешифровка
Procedure CriptFile_Key(SourceFile,DestFile,KeyFile:String;
CriptFlag:boolean)
- процедура по шифрофке/расшифровке файла с использованием
ключевого файла.
SourceFile,DestFile - исходный и зашифрованный файлы
соответственно
KeyFile - ключевой файл
CriptFlag - если TRUE то выполняется шифрование иначе - дешифровка
const PswChars:TCharSet=[#33..#126] - диапазон допустимых для пароля символов
Описание модуля FADATE
-----------------------------------------------------------------------------
Procedure ClrDateTime(var Dt:DateTimeRec);
Все поля в Dt устанавливаются в 0.
Procedure Date(var Dt:DateTimeRec);
Возвращает текущую дату.
Procedure Time(var Dt:DateTimeRec);
Возвращает текущее время.
Procedure Now(var Dt:DateTimeRec);
Возвращает текущую дату и время.
Procedure EncodeDate(ADay,AMonth,AYear:Word; var Dt:DateTimeRec);
Переводит Day,Month,Year в DateTimeRec
Procedure EncodeTime(AHour,AMin,ASec:Word; var Dt:DateTimeRec);
Переводит Hour,Min,Sec в DateTimeRec
Procedure DecodeDate(Dt:DateTimeRec; var Day,Month,Year:Word);
Переводит DateTimeRec в Day,Month,Year
Procedure DecodeTime(Dt:DateTimeRec; var Hour,Min,Sec:Word);
Переводит DateTimeRec в Hour,Min,Sec
Function IsLeapYear(Year:Word):boolean;
Проверка високосности года.
Function DaysInMonth(Month,Year:Word):Word;
Возвращает число дней в месяце Month для года Year.
Function ValidDate(Dt:DateTimeRec):boolean;
Проверка допустимости даты.
function CurrentYear: Word;
Возвращает текущий год.
Function DayOfWeek(Dt:DateTimeRec):integer;
Возвращает день недели.
Function DateToLong(Dt:DateTimeRec):longint;
Переводит дату в число дней после 01/01/0001
Function DayBetween(Dt1,Dt2:DateTimeRec):longint;
Считает число дней между датами.
Procedure LongToDate(L:longint; var Dt:DateTimeRec);
Переводит число дней после 01/01/0001 в дату.
Procedure HowOldAsDate(WasBorn:DateTimeRec; var Old:DateTimeRec);
Возвращает возраст человека по дню рождения.
Procedure HowOldAsDMY(WasBorn:DateTimeRec; var Days,Months,Years:Word);
Возвращает возраст человека в годах, месяцах, днях.
Function DateToStr(Dt:DateTimeRec):String;
Перевод даты в строку.
Function TimeToStr(Dt:DateTimeRec):String;
Перевод времени в строку.
Function DateTimeToStr(Dt:DateTimeRec):String;
Переводит дату и время в строку.
Function FormatDateTimeRec(Format:dtFormat; Dt:DateTimeRec):String;
Перевод дату и время в строку по формату.
Procedure StrToDate(S:String; var Dt:DateTimeRec);
Перевод строки в дату.
Procedure StrToTime(S:String; var Dt:DateTimeRec);
Перевод строки во время.
Procedure StrToDateTime(S:String; var Dt:DateTimeRec);
Перевод строки в дату и время.
Function LongDateStrL(Dt:DateTimeRec):String;
Длинное представление даты
Function LongTimeStrL(Dt:DateTimeRec):String;
Длинное представление времени.
Function LongDateStr(Dt:DateTimeRec):String;
Длинное представление даты.
Function LongTimeStr(Dt:DateTimeRec):String;
Длинное представление времени.
Function DayName(Dt:DateTimeRec):String;
Имя дня недели.
Описание модуля FAMATH
-----------------------------------------------------------------------------
Надеюсь, школьный курс математики не забыли?-))))
Множество тригонометрических функций.
Описение модуля INIFILE
-----------------------------------------------------------------------------
Модуль содержит обьект по работе с INI-файлами.
PIniFile=^TIniFile;
TIniFile=object(TObject)
IniFile:PString;
F:Text;
OldFAttr:Word;
Error:Byte;
Constructor Init(AIniFile:String);
Destructor Done; virtual;
Function ReadStrValue(Section,Param,DefValue:String):String;
Function ReadIntValue(Section,Param:String; DefValue:Longint):
longint;
Function ReadFloatValue(Section,Param:String; DefValue:Real):
Real;
Function SectionExists(Section:string):boolean;
Function ParamExists(Section,Param:String; var IniStr:String):
boolean;
Procedure WriteStrValue(Section,Param,Value:String);
Procedure WriteIntValue(Section,Param:String;Value:longint);
Procedure WriteFloatValue(Section,Param:String;Value:real);
end;
Поля и методы.
IniFile - имя файла
F - рабочая переменная/файл.
OldFAttr - старый атрибут файла (для сохранения/восстановления)
Error - индикатор ошибки. Если =0 - ошибок нет.
Constructor Init(AIniFile:String) - конструктор, принимает имя файла.
Destructor Done - деструктор
Функции по работе с файлом. Для всех параметры имеют значение:
Section - имя секции
Param - имя переменной секции
DefValue - значение переменной по умолчанию
Value - новое значение переменной
Function ReadStrValue(Section,Param,DefValue:String):String
- получить строку из файла.
Function ReadIntValue(Section,Param:String; DefValue:Longint):longint
- получить целое число.
Function ReadFloatValue(Section,Param:String; DefValue:Real):Real
- получить дробное число.
Function SectionExists(Section:string):boolean
- проверка существования секции.
Function ParamExists(Section,Param:String; var IniStr:String):boolean
- проверка существования параметра в секции
(возвращает строку с параметром)
Procedure WriteStrValue(Section,Param,Value:String)
- записать строку в файл.
Procedure WriteIntValue(Section,Param:String;Value:longint)
- записать целое.
Procedure WriteFloatValue(Section,Param:String;Value:real)
- записать дробное в файл.
Описание модуля PARLIST
----------------------------------------------------------------------------
Модуль написан для обработки конфигов из строк:
PARAM=VALUE.
Обьект списка строк. Является наследником TStringCollection.
PLineCollection=^TLineCollection;
TLineCollection=object(TStringCollection)
Procedure Change(Index:integer; NewValue:String);
Procedure Add(S:String);
Procedure AddStrings(SC:PStringCollection);
Procedure LoadFromFile(FileName:String);
Procedure SaveToFile(FileName:String);
end;
Методы:
Procedure Change(Index:integer; NewValue:String) заменить строку с заданным
индексом на новую.
Procedure Add(S:String) - добавить строку в список
Procedure AddStrings(SC:PStringCollection) - добавить строки из другой кол-
лекции
Procedure LoadFromFile(FileName:String) - загрузить список из файла.
Procedure SaveToFile(FileName:String) - сохранить список в файл.
Обьект по работе с конфигом. Принцип работы - входной поток из строк
Param=Value разбивается на два списка (в одном имена параметров,
в другом - значение). Таким образом достигается более высокая скорость
обработки.
PParamList=^TParamList;
TParamList=object(TObject)
Params:PStringCollection;
Values:PStringCollection;
DeleteComments:boolean;
ParamEquChar:Char;
CmtChar:Char;
constructor Init(ADelCmt:boolean; ParEquChar,ACmtChar:Char);
Destructor Done; virtual;
Procedure AddStrings(SC:PStringCollection);
Procedure Add(S:String);
Procedure Delete(Index:integer);
Function GetParam(Index:integer):String;
Function GetValue(Index:integer):String;
Function Strs(Index:integer):String;
Function ValueByParam(ParamName:String):String;
Procedure SplitParamValue(S:String; var Param,Value:String);
Procedure LoadFromFile(FileName:String);
Procedure SaveToFile(FileName:String);
Function GetParamIndex(ParamName:String):integer;
Procedure SetParam(ParamName,NewValue:String);
Procedure DeleteParam(ParamName:String);
end;
Методы
Params:PStringCollection; - список параметров
Values:PStringCollection; - список значений
DeleteComments:boolean; - флаг, указывающий на то, что комментарии
нужно удалять
ParamEquChar:Char; - символ равенства между параметром и значением
CmtChar:Char; - символ начала коментари
constructor Init(ADelCmt:boolean; ParEquChar,ACmtChar:Char) - конструктор
Destructor Done; - деструктор
Procedure AddStrings(SC:PStringCollection) - добавить строки из другой
коллекции
Procedure Add(S:String) - добавить строки
Procedure Delete(Index:integer) - удалить строку
Function GetParam(Index:integer):String - получить имя параметра
Function GetValue(Index:integer):String - получить значение
Function Strs(Index:integer):String - получить строку в виде
параметр+значение
Function ValueByParam(ParamName:String):String - получить значение по
имени параметра
Procedure SplitParamValue(S:String; var Param,Value:String) - разбить
строку на параметр и значение
Procedure LoadFromFile(FileName:String) загрузить из файла
Procedure SaveToFile(FileName:String) - сохранить в файл
Function GetParamIndex(ParamName:String):integer - получить индекс
параметра
Procedure SetParam(ParamName,NewValue:String) - присвоить параметру
новое значение
Procedure DeleteParam(ParamName:String) - удалить параметр
Описание модуля REPORTS
----------------------------------------------------------------------------
Модуль для генерации текстовых файлов отчетов. Используются файлы шаблонов.
PReport=^TReport;
TReport=object(TObject)
rmask,rout:Pstring;
Fin,Fout:Text;
ErrorCode:word;
Constructor Init(repMask,repOutFile:String);
Destructor Done;
Procedure BuildReportForm(Rec:Pointer);
Function GetData(fldNum,fldLen:word; Rec:Pointer):string;
Procedure BuildReportLine(S:String; Rec:Pointer);
Procedure BuildReport(DataSource:Pointer);
Procedure PrepareReport;
Procedure CloseReport;
Function DoMacro(S:String):String;
Function Error:boolean;
end;
Поля и методы:
rmask,rout - рабочие строки
Fin,Fout - рабочие файлы
ErrorCode - код ошибки
Constructor Init(repMask,repOutFile:String) - конструктор,
параметры - файл шаблона и файл отчета.
Destructor Done; деструктор
Procedure BuildReportForm(Rec:Pointer) построить отчет в виде формы.
Function GetData(fldNum,fldLen:word; Rec:Pointer):string; получить данные
для поля и засунуть их в длину поля.
Procedure BuildReportLine(S:String; Rec:Pointer) - построить строку отчета
Procedure BuildReport(DataSource:Pointer) - построить отчет
Procedure PrepareReport - подготовить отчет
Procedure CloseReport - закрыть отчет
Function DoMacro(S:String):String - обработать макроподстановку.
Function Error:boolean; - проверка, были ли ошибки
|