Приложение 1 Листинг программы


перейти к полному списку дипломных проектов

Ссылка на скачивания файла в формате .doc находится в конце странички

Приложение 1 Листинг программы

Program Sub_Rosa;

Uses

App, Dialogs, Drivers, Menus, MsgBox, Objects,

Validate, Views, Memory, StdDlg, Editors, {Модули Turbo Vision, далее - TV}

CRT, DOS, {Стандартные модули}

SetConf; {Модуль функции привязки к BIOS}

Var

MyRes : TResourceFile; {Переменная файла ресурсов, TV}

FName, MainDir, DName: string; {Переменные работы с файлами и каталогами}

MainPass, Pass : string; {Переменные паролей}

Pos : string[3];

FilePass : file of char; {Переменная файла паролей}

OptFile, OptInd : word; {Переменные опций}

Int09_Save : pointer; {Переменная адреса 09h прерывания}

Const {Константы кодов команд, TV}

cmAboutBox = 700; {Окно "О Программе"}

cmCode = 1001; {Кодировать файл}

cmDeCode = 1002; {Декодировать файл}

cmSetPass = 1005; {Установить пароль на вход в систему}

cmLockDisk = 1006; {Запретить доступ к винчестеру}

cmOptions = 1007; {Опции криптографии}

cmKeyDisk = 1008; {Ключевая дискета}

cmPasswords = 1009; {Пароль на исполняемый файл}

cmChangePass= 1010; {Сменить пароль на вход в систему}

SetPass = 'passw.com';

KeyDisk = 'keydisk.com';

RMenuBar: TStreamRec = ( {Запись для работы с потоком, TV}

ObjType: 2000;

VmtLink: Ofs(TypeOf(TMenuBar)^);

Load: @TMenuBar.Load;

Store: @TMenuBar.Store);

Type

{Установка опций криптографии}

POptions = ^TOptions;

TOptions = object(TDialog)

constructor Init;

end;

{Объект для работы с текстом}

PMyStaticText = ^TMyStaticText;

TMyStaticText = object(TStaticText)

function GetPalette: PPalette; virtual; {Переопределение палитры}

end;

{Объекты для работы с файлами и каталогами}

PMyFDialog = ^TMyFDialog;

TMyFDialog = object(TFileDialog)

function GetPalette: PPalette; virtual;

end;

PMyFileDialog = ^TMyFileDialog;

TMyFileDialog = object(TMyFDialog)

constructor Init(AWildCard: tWildStr; const ATitle,

InputName: string; AOptions: Word; HistoryId: Byte);

end;

PDirDialog = ^TDirDialog;

TDirDialog = object(TChDirDialog)

function GetPalette: PPalette; virtual;

end;

PMyChDirDialog = ^TMyChDirDialog;

TMyChDirDialog = object(TDirDialog)

constructor Init(AOptions: Word; HistoryId: Word);

procedure SetUpDialog;

function Valid(Command: Word): Boolean; virtual;

end;

{Установка основного фона программы}

PMyBackground = ^TMyBackground;

TMyBackground = object(TBackground)

Text: TTitleStr;

constructor Init(var Bounds: TRect; AText: TTitleStr);

procedure Draw; virtual;

end;

PMyDesktop = ^TMyDesktop;

TMyDesktop = object(TDesktop)

procedure InitBackground; virtual;

end;

{Объект "О Программе"}

PAboutBox = ^TAboutBox;

TAboutBox = object(TDialog)

constructor Init;

end;

{Основной объект}

PMyApp = ^TMyApp;

TMyApp = object(TApplication)

constructor Init; {инициализация}

destructor Done; virtual; {завершение работы}

procedure HandleEvent(var Event: TEvent); virtual; {обработка событий}

procedure InitMenuBar; virtual; {инициализация меню}

procedure InitDeskTop; virtual; {инициализация рабочего поля}

procedure InitStatusLine; virtual; {инициализация строки состояния}

procedure FileOpen(WildCard: PathStr); {окно для работы с файлами}

function GetPalette: PPalette; virtual; {изменение стандартной палитры}

end;

{ Русифицированная функция формирования сообщения }

function MyMessageBoxRect(var R: TRect;

const Msg: string; Params: pointer;

AOptions: word): word;

const

ButtonName: array[0..3] of string[6] = ('Ага', 'Нека', 'Ага', 'Нека');

Commands: array[0..3] of Word = (cmYes, cmNo, cmOK, cmCancel);

Titles: array[0..3] of string[11] =

('Предупреждение', 'Ошибка', 'Информация', 'Подтверждение');

var

I, X : integer;

Dialog : PDialog;

Control: PView;

S : string;

begin

Dialog:= New(PDialog, Init(R, Titles[AOptions and $3]));

with Dialog^ do

begin

Options:= Options or ofCentered;

R.Assign(3, 2, Size.X - 2, Size.Y - 3);

FormatStr(S, Msg, Params^);

Insert(New(PStaticText, Init(R, S)));

X:= -2;

R.Assign(0, 0, 10, 2);

for I:= 0 to 3 do

if AOptions and ($0100 shl I) <> 0 then

Inc(X, R.B.X - R.A.X + 2);

X:= (Size.X - X) shr 1;

for I:= 0 to 3 do

if AOptions and ($0100 shl I) <> 0 then

begin

Control:= New(PButton, Init(

R, ButtonName[I], Commands[i], bfNormal));

Insert(Control);

Control^.MoveTo(X, Size.Y - 3);

Inc(X, Control^.Size.X + 2);

end;

SelectNext(False);

end;

if AOptions and mfInsertInApp = 0 then

MyMessageBoxRect:= DeskTop^.ExecView(Dialog)

else

MyMessageBoxRect:= Application^.ExecView(Dialog);

Dispose(Dialog, Done);

end;

{ Русифицированная функция формирования сообщения

стандартного размера }

function MyMessageBox(const Msg: String;

Params: Pointer; AOptions: Word): Word;

var

R: TRect;

begin

R.Assign(0, 0, 40, 9);

MyMessageBox:= MyMessageBoxRect(R, Msg, Params, AOptions);

end;

function GetCurDir: DirStr;

var

CurDir: DirStr;

begin

GetDir(0, CurDir);

if Length(CurDir) > 3 then

begin

Inc(CurDir[0]);

CurDir[Length(CurDir)]:= '\';

end;

GetCurDir:= CurDir;

end;

{Процедура инициализации окна работы с файлами}

procedure TMyApp.FileOpen(WildCard: PathStr);

var

FileName: FNameStr;

begin

FileName:= '*.*';

if ExecuteDialog(New(PMyFileDialog, Init(

WildCard, 'Открыть файл', 'Имя', fdOpenButton,

100)), @FileName) <> cmCancel then FName:=FileName;

{открыть файл, потом...}

end;

{****************************************************************************}

{*----------============= К Р И П Т О Г Р А Ф И Я ================----------*}

{****************************************************************************}

{Шифрование файлов}

procedure Shifr(InputFileName: string);

const

A = 5; {Константы для}

C = 27; {генератора}

M = 65536; {псевдослучайных чисел, далее - ПСЧ}

var

TempFile : file of byte;

InpF, OutF : file of word; {файлы на входе и выходе}

Password, Password1 : string; {переменные для работы с паролями}

OutputFileName, Exten : string; {переменные имен файлов}

I, J, K, tmp : byte; {переменные кодирования}

Temp, SCode, TByte, Code: word;

Position : LongInt; {переменные данных о процессе}

NowPos : real;

TPassword : array [1..255] of word;

MasByte, Mas, MasEnd, PS: array [1..64] of word; {массивы перестановок}

T : array [0..64] of word;

DirInfo, DirInfo1 : SearchRec; {данные о файле}

begin

if length(FName) > 3 then {Файл выбран?}

begin

{Получить пароль}

Password := '';

Password1 := '';

InputBox('П А Р О Л Ь', ' Введите пароль:', Password, 255);

InputBox('П А Р О Л Ь', 'Введите пароль еще раз:', Password1, 255);

if (Password = Password1) and (length(Password)<>0) then

begin

{Преобразовать файл}

FindFirst(InputFileName, AnyFile, DirInfo);

if DOSError = 0 then

begin

if DirInfo.Size mod 2 = 1 then

begin

assign(TempFile, InputFileName);

reset(TempFile);

while not EOF(TempFile) do read(TempFile, tmp);

tmp := 255;

write(TempFile, tmp);

close(TempFile);

end;

{Преобразовать имя файла}

Position := 0;

assign(InpF, InputFileName);

reset(InpF);

for i := length(InputFileName) downto 1 do

if InputFileName[i] = '.' then

begin

OutputFileName := copy(InputFileName, 1, i) + 'M

скачать бесплатно Защита данных от несанкционированного доступа

Содержание дипломной работы

Защита данных от несанкционированного доступа
1. 1. Организационно-экономическая сущность задачи
1. 2. Входная информация
1. 3. Постоянная информация
1. 4. Выходная информация
2. Вычислительная система
2. 2. Технические средства реализации задачи
2. 3. Программные средства реализации задачи
3. Алгоритм задачи
3. 1 Инсталляционный модуль
3. 2. Оболочка программы
3. 2. Криптографическая защита
4. Описание программы
A). Исходный файл считывается блоками по 64 word
A и т. д.
5. Описание применения программы
6. Заключение
Приложение 1 Листинг программы
A';
A') then

заработать

Закачай файл и получай деньги