Электронно-картографическая система спутниковой связи в судовождении
ЗАО "ГлобалТел" как оператор и эксклюзивный поставщик услуг Globalstar в России. Знакомство с особенностями мобильных терминалов. Характеристика спутниковых систем, обеспечивающих мониторинг местоположения судов. Анализ мобильных станций Inmarsat-C.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.09.2013 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
5.5 Мероприятия по обеспечению безопасности в чрезвычайных ситуациях
5.5.1 Чрезвычайные ситуации наиболее вероятные для рабочего корпуса
При проектировании мероприятий по обеспечению безопасности жизнедеятельности сотрудников необходимо учитывать возможность возникновения чрезвычайной ситуации (ЧС). Для рабочего корпуса можно выделить следующие наиболее вероятные ЧС:
1) пожар, из-за нарушении мер пожарной безопасности, в результате разрядов молнии, неисправности электропроводки, самовозгорания и др. причин;
2) эпидемии респираторных заболеваний, передающихся воздушно-капельным путем, из-за большого скопления людей;
3) угроза террактов (заложенные взрывные устройства);
4) химическое заражение вследствие аварии на предприятиях города.
Рассмотрим более подробно чрезвычайную ситуацию -- пожар. Проанализируем возможные причины возникновения пожара и мероприятия по обеспечению пожарной безопасности.
5.5.2 Общие положения пожарной безопасности
В соответствии с ГОСТ 12.1.004-91 пожарная безопасность объекта должна обеспечиваться системами предотвращения пожара и противопожарной защиты, в том числе организационно-техническими мероприятиями.
Все системы пожарной безопасности должны характеризоваться уровнем обеспечения пожарной безопасности людей и материальных ценностей и выполнять одну из следующих задач:
1) исключать возникновение пожара;
2) обеспечивать пожарную безопасность людей;
3) обеспечивать пожарную безопасность материальных ценностей;
4) обеспечивать пожарную безопасность людей и материальных ценностей одновременно.
Данная система направлена на предотвращение воздействия на людей опасных факторов пожара и их вторичных проявлений.
Причинами пожара в кабинете рабочего корпуса может быть следующее:
1) нарушение изоляции проводов в электропроводке;
2) курение в помещении;
3) неисправность электрооборудования (в том числе компьютеров).
4) использование электрических кипятильников;
Таким образом, опасными факторами пожара, воздействующими на людей и материальные ценности являются:
1) пламя и искры;
2) повышенная температура окружающей среды;
3) дым.
К вторичным проявлениям опасных факторов относятся:
1) осколки, части разрушившегося оборудования, конструкций;
2) токсичные продукты горения и вещества, вышедшие из разрушенного оборудования;
3) электрический ток, возникший в результате выноса высокого напряжения на токопроводящие части оборудования.
5.5.3 Классификация помещения по пожарной безопасности
В соответствии с СНиП 21-01-97 пожарно-техническая классификация предназначается для установления необходимых требований по противопожарной защите конструкций, помещений в зависимости от их огнестойкости и (или) пожарной опасности.
Здания подразделяются по степеням огнестойкости, классам конструктивной и функциональной опасности. Степень огнестойкости здания определяется огнестойкостью его строительных конструкций. Предел огнестойкости строительных конструкций составляет не менее:
1) несущие элементы имеют потери несущей способности R не менее 45мин;
2) наружные стены теряют несущую способность R и целостность E не менее чем через 15 мин;
3) междуэтажные перекрытия характеризуются величиной RE 45мин и потерей теплоизолирующей способности I не менее 45 мин;
4) внутренние стены лестничных клеток характеризуются величиной REI 90 мин;
5) марши и площадки лестниц - R 45 мин.
Класс конструктивной пожарной опасности здания определяется степенью участия строительных конструкций в развитии пожара и образовании его опасных факторов. Класс конструктивной пожарной опасности главного корпуса -- C1, т.е. класс пожарной опасности его строительных конструкций не ниже:
1) несущие стержневые элементы (колонны, фермы) имеют класс К1 - малопожароопасные;
2) наружные стены с внешней стороны - К2 - умереннопожароопасные;
3) стены, перекрытия, перегородки имеют класс К1;
4) стены лестничных клеток и марши лестниц характеризуются классом К0 - непожароопасные.
По функциональной пожарной опасности здания подразделяются на классы в зависимости от способа их использования и от того, в какой мере безопасность людей в них в случае возникновения пожара находится под угрозой. Кабинет 512, в соответствии с СНиП 21-01-97, относится к классу Ф4.3, т.к. она используется в течение суток некоторое время и в ней находится постоянный, привыкший к местным условиям состав людей.
5.5.4 Обеспечение пожарной безопасности персонала
Для прекращения горения применяют следующие способы:
1) охлаждение зоны реакции или самих горящих веществ;
2) разбавление реагирующих веществ;
3) химическое торможение реакции сгорания;
4) изоляция реагирующих веществ от зоны сгорания.
Необходимо учитывать, что возможно возгорание компьютера или другого электрооборудования. Если горящий компьютер не отключен и находится под напряжением, то его тушение представляет опасность поражения электрическим током.
При обнаружении возникновения пожара или срабатывания пожарной сигнализации необходимо предпринять следующие действия:
1) вызвать пожарную службу по телефону 911;
2) приступить к эвакуации людей из помещений корпуса согласно схеме эвакуации;
3) немедленно открыть все выходы;
4) немедленно отключить электропитание, все электропитающие устройства;
5) дежурной пожарной команде (ДПК) приступить к тушению пожара, применяя огнетушители, водяной гидрант, песок и другие средства пожаротушения.
Эвакуация, в соответствии с СНиП 21-01-97, определяется как процесс организованного самостоятельного движения людей наружу из помещений, в которых имеется возможность воздействия на них опасных факторов пожара и осуществляется по путям эвакуации через эвакуационные выходы. Эвакуационные пути в пределах помещения должны обеспечивать безопасную эвакуацию людей через выходы из данного помещения без учета применяемых в нем средств пожаротушения и противодымной защиты.
Список использованной литературы
1.ГОСТ 12.0.003-74 ССБТ Опасные и вредные производственные факторы. Классификация;
2.Государственная система санитарно-эпидемиологического нормирования Российской Федерации. 2.2. Гигиена труда. Гигиенические критерии оценки условий труда по показателям вредности и опасности факторов производственной среды, тяжести и напряженности трудового процесса. Утв. 12.07.94. Р 2.2.0 13-94. Охрана труда и социальное страхование;
3.СанПиН 2.2.2.542-96 Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы;
4.Амарина Е.Е. Учет в Интернет-магазине. // www.consalting.ru, 2003;
5.Афонин С. Современные технологии по созданию сайтов и интернет-магазинов. // www.mags.ru, 2004;
6.Беляев В. Зарубежные информационные и аналитические ресурсы в сети Интернет. // Рынок ценных бумаг. - 1999. № 7, с. 26;
7.Бурдинский А. Перспективы развития рынка финансовых Интернет-услуг. // www.osp.ru, 2000;
8.Бурмистров А. Золотая лихорадка русского Интернета. // www.osp.ru, 2000;
9.Вайнман Л., Вайнман В. Динамический HTML. Руководство разработчика Web-сайтов. - Киев.: Диасофт, 2001. - 464 с.;
10.Вартанян М. SET- не догма., М.: Мир Интернет, 1999. - 254 с.;
11.Гайкович В., Першин А. Безопасность электронных банковских систем. - М.: Единая Европа, 2002. - 264 c.;
12.Гилстер П. Новый навигатор Internet. - Киев: Диалектика, 2003. - 495 c.;
13.Гофман В.Э., Хомоненко А.Д. Delphi 6. - СПб.: БХВ-Петербург, 2002. - 1152 с.;
14.Гудман Д. JavaScript. Библия пользователя. - М.: Вильямс, - Изд. 4-е, 2002. - 960 с.;
15.ДиалогСибирь // www.dialog-it.ru/ecommerce/, 2004;
16.Дмитриева М.В. Самоучитель JavaScript. - СПб.: БХВ-Петербург, 2001. - 512 с.;
17.Долгов В., Интернет-магазин OZON лидер электронной коммерции сегмента B2C в России. // www.rocit.ru, 2003;
18.Егорова Е. Интернет-магазины: взгляд изнутри. // www.cnt.online.ru, 2001;
19.Игер Б. Работа в Internet / Под ред. А. Тихонова; Пер. c англ. - М.: БИНОМ, 2001. - 313 c.;
20.Ильин М. MySQL. // www.infocity.kiev.ua, 2003;
21.Кент П. Internet / Перевод c английского В.Л. Григорьева. - М.: Компьютер, ЮНИТИ, 2003. - 267 c.;
22.Колесников О.Э. Интернет для делового человека. - M.: МЦФ, 2001. - 281 c.;
23.Костарев А.Ф. PHP в Web-дизайне. - СПб.: БХВ-Петербург, 2002. - 592 с.;
24.Котеров Д.В. Самоучитель PHP 4. - СПб.: БХВ-Петербург, 2003. - 576 с.;
25.Кривопалов Д.В. Консультации для успешного бизнеса. Интернет-магазины. // www.consalting.ru, 2003;
26.Крол Эд. Все об Internet: Руководство и каталог / Перевод c английского С.М. Тимачева. - Киев: BNV, 2003. 591 c.;
27.Левин В.К. Защита информации в информационно-вычислительных системах и сетях // Программирование. - 2002. № 5, с. 5;
28.Мацяшек Л.А. Анализ требований и проектирование систем. Разработка информационных систем с использованием UML. - М.: Вильямс, 2002. - 432 с.;
29.Методические указания по дипломному проектированию для МГСУ, специальности "Автоматизированные системы обработки информации и управления" 220200. М., 2002. - 76 с.;
30.Новомлинский Л. Электронная коммерция. Решения компании TopS. // www.topsbi.ru, 1998;
31.Нольден М. Ваш первый выход в Internet: Для начинающих пользователей Internet и широкого круга пользователей PC / Под ред. Е.В.Кондукова; Перевод с немецкого К.А. Шиндер. - Спб.: ИКС, 2002. - 238 с.;
32.Рейлли Б. Эскиз электронного магазина. // www.osp.ru, 2000;
33.Стерн М., Монти Г., Бэчман В. Сети предприятий на основе Windows NT. - СПб.: Питер, 1999. - 448 с.;
34.Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. - СПб.: ДиасофтЮП, 2003. - 672 с.;
35.Фролов А.В., Фролов Г.В. Глобальные сети компьютеров. Практическое введение в Internet, E-mail, FTP, WWW, и HTML, программирование для Windiws Sockets. - М.: Диалог - МИФИ, 2003. - 283 c.;
36.Хансен Г., Хансен Д. Базы данных: разработка и управление. - М.: Бином, 2000. - 525 c.;
37.Хоникат Д. Internet Windows 2000: Руководство пользователя / Перевод с английского В.М. Неклюдовой. - М.: БИНОМ, 2003. - 334 с.;
38.Cheswick W.R., Bellovin S.M. Firewalls and Internet Security: Repelling the Wily Hacker. - Addison-Wesley, 2002. - 275 c.;
39.An Introduction to Computer Security: The NIST Handbook. Draft. - National Institute of Standards and Technology, Technology Administration, U.S. Department of Commerce, 2001. - 310 c.;
40.E-Commerce.ru, Программный комплекс управления Интернет-магазином. // www.e-commerce.ru, 2003.
Приложения
unit Unit1;
interface
uses
Windows, SysUtils, Graphics, Classes, Controls, Forms,
Dialogs, ImgList, IdGlobal, Menus, ComCtrls, StdCtrls, Buttons,
Masks;
type
First_Or_Second = (First, Second);
TwoPanels = record
road : string;
nDir,nfiles : integer;
fkbyte : integer;
numSort : byte
end;
TForm1 = class(TForm)
ListView1: TListView;
Edit1: TEdit;
ListView2: TListView;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
StatusBar1: TStatusBar;
ImageList1: TImageList;
OpenDialog1: TOpenDialog;
PopupMenu1: TPopupMenu;
Characteristic: TMenuItem;
PopupRazd: TMenuItem;
GoOut: TMenuItem;
MainMenu1: TMainMenu;
MenuFile: TMenuItem;
MenuAttr: TMenuItem;
Razd1: TMenuItem;
MenuF2: TMenuItem;
MenuF3: TMenuItem;
MenuF4: TMenuItem;
MenuF5: TMenuItem;
MenuF6: TMenuItem;
MenuF7: TMenuItem;
MenuF8: TMenuItem;
Razd2: TMenuItem;
MenuExit: TMenuItem;
MenuSelect: TMenuItem;
MenuSelectAll: TMenuItem;
MenuSelectInvert: TMenuItem;
MenuComand: TMenuItem;
MenuMemory: TMenuItem;
MenuWorkWindows: TMenuItem;
Razd3: TMenuItem;
MenuCascadno: TMenuItem;
MenuSvernutOkna: TMenuItem;
MenuUpdateDesctop: TMenuItem;
MenuRebootExsplorer: TMenuItem;
Razd4: TMenuItem;
MenuControlPanel: TMenuItem;
MenuDisplayProperties: TMenuItem;
Razd5: TMenuItem;
MenuCopyDiskA: TMenuItem;
MenuFormatA: TMenuItem;
Razd6: TMenuItem;
MenuBistroExitWindows: TMenuItem;
MenuCloseSeans: TMenuItem;
MenuPowerOff: TMenuItem;
MenuHelp: TMenuItem;
SpeedButton1: TSpeedButton;
Label5: TLabel;
Label6: TLabel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure AddNewFile(F : TSearchRec; var ListView: TListView);
procedure ShowDirectory(road : string; var ListView: TListView);
procedure ListView0Compare(Item1, Item2: TListItem; var Compare: Integer; n : byte);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ListViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ListViewClick(Sender: TObject);
procedure ListView0DblClick(var road : string; var ListView: TListView);
procedure ListViewCompare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
procedure ListViewColumnClick(Sender: TObject; Column: TListColumn);
procedure ListViewDblClick(Sender: TObject);
procedure ComboBoxDropDown(Sender: TObject);
procedure ComboBoxCloseUp(Sender: TObject);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure CharacteristicClick(Sender: TObject);
procedure GoOutClick(Sender: TObject);
procedure ListViewMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure MenuF2Click(Sender: TObject);
procedure MenuF3Click(Sender: TObject);
procedure MenuF4Click(Sender: TObject);
procedure MenuF5Click(Sender: TObject);
procedure MenuF6Click(Sender: TObject);
procedure MenuF7Click(Sender: TObject);
procedure MenuF8Click(Sender: TObject);
procedure MenuSelectAllClick(Sender: TObject);
procedure MenuSelectInvertClick(Sender: TObject);
procedure MenuMemoryClick(Sender: TObject);
procedure MenuWorkWindowsClick(Sender: TObject);
procedure MenuCascadnoClick(Sender: TObject);
procedure MenuSvernutOknaClick(Sender: TObject);
procedure MenuUpdateDesctopClick(Sender: TObject);
procedure MenuRebootExsplorerClick(Sender: TObject);
procedure MenuControlPanelClick(Sender: TObject);
procedure MenuDisplayPropertiesClick(Sender: TObject);
procedure MenuCopyDiskAClick(Sender: TObject);
procedure MenuFormatAClick(Sender: TObject);
procedure MenuBistroExitWindowsClick(Sender: TObject);
procedure MenuCloseSeansClick(Sender: TObject);
procedure MenuPowerOffClick(Sender: TObject);
procedure MenuHelpClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Memo1DblClick(Sender: TObject);
end;
var
Form1: TForm1;
Chesked_1Or2 : First_Or_Second;
FirstP, SecondP : TwoPanels;
implementation
{$R *.dfm}
procedure FindFiles(Path, Mask: string; var List: TStrings; IncludeSubDir: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
List.BeginUpdate;
try
Path:=IncludeTrailingBackSlash(Path);
FindResult:=FindFirst(Path+'*.*', faAnyFile, SearchRec);
try
while FindResult = 0 do with SearchRec do begin
if (Attr and faDirectory<>0) then begin
if IncludeSubDir and (Name<>'..') and (Name<>'.')
then FindFiles(Path+Name, Mask, List, IncludeSubDir);
end
else begin
if MatchesMask(Name, Mask) then List.Add(Path+Name);
end;
FindResult:=FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
List.EndUpdate;
end;
end;
function MyWinExec(FileName : String; Visibility : integer = SW_SHOWDEFAULT) : boolean;
var
zAppName:array[0..512] of char;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
result := CreateProcess(nil,
zAppName, { указатель командной строки }
nil, { указатель на процесс атрибутов безопасности }
nil, { указатель на поток атрибутов безопасности }
false, { флаг родительского обработчика }
CREATE_NEW_CONSOLE or { флаг создания }
NORMAL_PRIORITY_CLASS,
nil, { указатель на новую среду процесса }
nil, { указатель на имя текущей директории }
StartupInfo, { указатель на STARTUPINFO }
ProcessInfo) { указатель на PROCESS_INF }
end;
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
procedure CreateColumn(var ListView: TListView);
var
NewColumn : TListColumn;
begin
with ListView do begin
ViewStyle := vsReport;
NewColumn := Columns.Add;
NewColumn.Caption := 'Название';
NewColumn := Columns.Add;
NewColumn.Caption := 'Расш.';
NewColumn := Columns.Add;
NewColumn.Caption := 'Размер, б';
NewColumn := Columns.Add;
NewColumn.Caption := 'Дата создания';
NewColumn := Columns.Add;
NewColumn.Caption := 'Скрытый';
NewColumn := Columns.Add;
NewColumn.Caption := 'Сист.';
Columns[0].Width := 120;
Columns[1].Width := 45;
Columns[2].Width := 80;
Columns[3].Width := 100;
Columns[4].Width := 58;
Columns[5].Width := 40;
end
end;
begin
CreateColumn(ListView1);
CreateColumn(ListView2);
SecondP.road := GetCurrentDir;
SecondP.numSort := 0;
Chesked_1Or2 := Second;
ShowDirectory(SecondP.road,ListView2);
ListView2.Items[0].Selected := true;
FirstP.road := 'C:';
FirstP.numSort := 0;
Chesked_1Or2 := First;
ShowDirectory(FirstP.road,ListView1);
ListView1.Items[0].Selected := true;
for i := 0 to 7 do begin
StatusBar1.Panels.Add;
StatusBar1.Panels[i].Width := form1.Width div 8;
StatusBar1.Panels[i].Bevel := pbRaised;
StatusBar1.Panels[i].Alignment := taCenter;
end;
StatusBar1.Panels.Items[0].Text := 'F1 - Помощь';
StatusBar1.Panels.Items[1].Text := 'F2 - Переимен.';
StatusBar1.Panels.Items[2].Text := 'F3 - Найти файл';
StatusBar1.Panels.Items[3].Text := 'F4 - Редактир.';
StatusBar1.Panels.Items[4].Text := 'F5 - Копировать';
StatusBar1.Panels.Items[5].Text := 'F6 - Переместить';
StatusBar1.Panels.Items[6].Text := 'F7 - Созд. кат.';
StatusBar1.Panels.Items[7].Text := 'F8 - Удалить';
end;
procedure TForm1.AddNewFile(F : TSearchRec; var ListView: TListView);
var i : integer;
ext : string;
begin
if F.Name <> '.' then
with ListView.Items.Add, F do begin
if (Attr and faDirectory) <> 0 then begin
Caption := AnsiUpperCase(Name);
SubItems.Add('');
ImageIndex := 0;
SubItems.Add('Папка')
end
else begin
Name := AnsiLowerCase(Name);
ext := ExtractFileExt(Name);
i := pos(ext,Name);
if i = 0 then Caption := Name
else begin
Caption := copy(Name,1,i-1);
ext := copy(ext,2,length(ext)-1)
end;
SubItems.Add(ext);
if (ext = 'bmp')or(ext = 'jpg')or(ext = 'jpeg')or(ext = 'gif') then ImageIndex := else
if (ext = 'txt')or(ext = 'doc')or(ext = 'log') then ImageIndex := 2
else
if (ext = 'exe')or(ext = 'com')or(ext = 'bat') then ImageIndex := 3
else
if (ext = 'ini')or(ext = 'dll')or(ext = 'sys') then ImageIndex := 4
else ImageIndex := 5;
SubItems.Add(IntToStr(Size))
end;
SubItems.Add(DateTimeToStr(FileDateToDateTime(Time)));
if (Attr and faHidden) <> 0 then SubItems.Add('Да')
else SubItems.Add('Нет');
if (Attr and faSysFile) <> 0 then SubItems.Add('Да')
else SubItems.Add('Нет')
end
end;
procedure TForm1.ShowDirectory(road : string; var ListView: TListView);
var
F : TSearchRec;
numD,numF,filesize : integer;
begin
ListView.Clear;
numD := 0;
numF := 0;
filesize := 0;
if FindFirst(road+'\*.*', faAnyFile, F) = 0 then begin
repeat
AddNewFile(F,ListView);
if (F.Attr and faDirectory) <> 0 then begin
if (F.Name<>'..')and(F.Name<>'.') then inc(numD)
end
else begin
inc(numF);
inc(filesize,round(F.Size/1000))
end
until FindNext(F) <> 0;
ListView.AlphaSort;
ListView.ItemIndex := 0
end;
FindClose(F);
if Chesked_1Or2 = First then begin
label3.Caption := road;
label5.Caption := 'Папок '+IntToStr(numD)+' В '+IntToStr(numF)+' файлах - '+IntToStr(filesize)+' Kб'
end
else begin
label4.Caption := road;
label6.Caption := 'Папок '+IntToStr(numD)+' В '+IntToStr(numF)+' файлах - '+IntToStr(filesize)+' Kб'
end
end;
procedure TForm1.ListView0Compare(Item1, Item2: TListItem; var Compare: Integer; n : byte);
label repeatCase;
begin
if ((Item1.ImageIndex=Item2.ImageIndex)and(Item1.ImageIndex=0))or
((Item1.ImageIndex<>0)and(Item2.ImageIndex<>0)) then
repeatCase :
case n of
0 : if Item1.Caption = Item2.Caption then begin
n := 1; goto repeatCase
end
else
if Item1.Caption < Item2.Caption then Compare := -1
{Название} else Compare := +1;
1 : if Item1.SubItems[0] = Item2.SubItems[0] then begin
n := 0; goto repeatCase
end
else
if Item1.SubItems[0] < Item2.SubItems[0] then Compare := -1
{Расш.} else Compare := +1;
2 : if Item1.SubItems[1] = Item2.SubItems[1] then begin
n := 0; goto repeatCase
end
else
if Item1.ImageIndex<>0 then begin
if (StrToInt(Item1.SubItems[1]) < StrToInt(Item2.SubItems[1])) then Compare := -1
{Размер, б} else Compare := +1
end;
3 : if Item1.SubItems[2] = Item2.SubItems[2] then begin
n := 0; goto repeatCase
end
else
if DateTimeToFileDate(StrToDateTime(Item1.SubItems[2])) < DateTimeToFileDate(StrToDateTime(Item2.SubItems[2])) then Compare := -1
{Дата создания} else Compare := +1;
4 : if Item1.SubItems[3] = Item2.SubItems[3] then begin
n := 0; goto repeatCase
end
else
if Item1.SubItems[3] < Item2.SubItems[3] then Compare := -1
{Скрытый} else Compare := +1;
5 : if Item1.SubItems[4] = Item2.SubItems[4] then begin
n := 0; goto repeatCase
end
else
if Item1.SubItems[4] < Item2.SubItems[4] then Compare := -1
{Сист.} else Compare := +1;
end{case}
else
if Item1.ImageIndex<Item2.ImageIndex then Compare := -1
else Compare := +1
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then begin
if FileExists(Edit1.Text) then begin
if not MyWinExec(Edit1.Text) then ShowMessage('Ошибка выполнения программы!')
end
else
if DirectoryExists(Edit1.Text) then
if Chesked_1Or2 = First then begin
FirstP.road := Edit1.Text;
ShowDirectory(FirstP.road,ListView1)
end
else begin
SecondP.road := Edit1.Text;
ShowDirectory(SecondP.road,ListView2)
end
else ShowMessage('Файл или папка не найдены!')
end
end;
function CopyDir(from,into : String) : boolean;
var
F : TSearchRec;
begin
into := into+'\'+ExtractFileName(from);
result := ForceDirectories(into); //MkDir
FindFirst(from+'\*.*',faAnyFile,F);
FindNext(F);
while FindNext(F) = 0 do
if (F.Attr and faDirectory)<>0 then CopyDir(from+'\'+F.Name,into)
else copyFileTo(from+'\'+F.Name,into+'\'+F.Name);
FindClose(F)
end;
function RemoveTree(dir : String) : boolean;
var
F : TSearchRec;
begin
FindFirst(dir+'\*.*',faAnyFile,F);
FindNext(F);
while FindNext(F) = 0 do
if (F.Attr and faDirectory)<>0 then RemoveTree(dir+'\'+F.Name)
else DeleteFile(dir+'\'+F.Name);
FindClose(F);
result := RemoveDir(dir)
end;
procedure TForm1.ListViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
road,filename,road_2 : string;
ListView: TListView;
Item : TListItem;
List: TStrings;
begin
case Key of
192 : if Chesked_1Or2 = First then begin
ListView2.SetFocus;
ListViewClick(ListView2)
end
else begin
ListView1.SetFocus;
ListViewClick(ListView1)
end;
13 : ListViewDblClick(Sender);
112 : ShowMessage('Программy составили студенты МГСУ'+#13#10+
'факультета АиИТ (АСУ):'+#13#10+
' Рашидов Р.'+#13#10+
' Зотов Т.'+#13#10+
' Троицкий А.'); //F1 - Помощь
46,113..119 : begin
if Chesked_1Or2 = First then begin
road := FirstP.road;
ListView := ListView1
end
else begin
road := SecondP.road;
ListView := ListView2
end;
Item := ListView.Items[ListView.ItemIndex];
case Key of
113 : if Item <> nil then begin //F2 - Переимен.
filename := Item.Caption;
if Item.ImageIndex<>0 then begin
if Item.SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];
if RenameFile(road+'\'+filename,road+'\'+InputBox('Переименовать...','Файл '+filename+' в',filename)) then ShowDirectory(road,ListView)
else ShowMessage('Невозможно переименовать файл')
end
else
if Item.Caption<>'..' then
if RenameFile(road+'\'+filename,road+'\'+InputBox('Переименовать...','Директорию '+filename+' в',filename)) then ShowDirectory(road,ListView)
else ShowMessage('Невозможно переименовать каталог')
end;
114 : begin
repeat
if not InputQuery('Найти...','Введите имя или маску икомого файла',filename) then exit//F3 - Найти
until InputQuery('Найти.. .','Введите каталог, где будет вестись поиск',road);
Memo1.Show;
Memo1.ShowHint := true;
List := Memo1.Lines;
FindFiles(road, filename, List);
if List.Count > 1 then List.Delete(0);
end;
115 : while Item <> nil do begin//F4 - Редактир.
if Item.ImageIndex<>0 then
if Item.SubItems[0] = '' then
MyWinExec('C:\WINDOWS\NOTEPAD.EXE '+road+'\'+Item.Caption)
else
MyWinExec('C:\WINDOWS\NOTEPAD.EXE '+road+'\'+Item.Caption+'.'+Item.SubItems[0]);
Item := ListView.GetNextItem(Item, sdAll, [isSelected])
end;
116 : if Item <> nil then begin//F5 - Копировать
if Chesked_1Or2 = First then road_2 := SecondP.road
else road_2 := FirstP.road;
if InputQuery('Копировать...','Куда...',road_2) then
repeat
filename := Item.Caption;
if Item.ImageIndex<>0 then begin
if Item.SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];
if not copyFileTo(road+'\'+filename,road_2+'\'+filename) then showMessage('Не удалось скопировать '+filename)
end
else begin
copyDir(road+'\'+filename,road_2)
end;
Item := ListView.GetNextItem(Item, sdAll, [isSelected])
until Item = nil;
if Chesked_1Or2 = First then begin
ListViewClick(ListView2);
ShowDirectory(SecondP.road,ListView2);
ListViewClick(ListView1)
end
else begin
ListViewClick(ListView1);
ShowDirectory(FirstP.road,ListView1);
ListViewClick(ListView2)
end
end;
117 : if ((Item <> nil)and(Item.Caption<>'..'))or(ListView.SelCount>1) then begin
if Chesked_1Or2 = First then road_2 := SecondP.road
else road_2 := FirstP.road;
if InputQuery('Comander','Переместить в ...',road_2) then begin
repeat
if Item.Caption<>'..' then begin
filename := Item.Caption;
if (Item.ImageIndex<>0)and(Item.SubItems[0]<>'') then filename := filename+'.'+Item.SubItems[0];
if road[1]<>road_2[1] then
if Item.ImageIndex=0 then begin
if copyDir(road+'\'+filename,road_2) then
if not RemoveTree(road+'\'+filename) then showMessage('Hе удаётся удалить каталог '+filename)
end
else begin
if CopyFileTo(road+'\'+filename,road_2+'\'+filename) then
if not DeleteFile(road+'\'+filename) then showMessage('Hе удаётся удалить файл '+filename)
end
else
if not RenameFile(road+'\'+filename,road_2+'\'+filename) then ShowMessage('Невозможно переместить файл/каталог: '+filename)
end;
Item := ListView.GetNextItem(Item, sdAll, [isSelected])
until Item = nil;
if Chesked_1Or2 = First then begin
ShowDirectory(FirstP.road,ListView1);
Chesked_1Or2 := Second;
ShowDirectory(SecondP.road,ListView2);
Chesked_1Or2 := First
end
else begin
Chesked_1Or2 := First;
ShowDirectory(FirstP.road,ListView1);
Chesked_1Or2 := Second;
ShowDirectory(SecondP.road,ListView2)
end
end
end;
118 : if InputQuery('Comander','Новая директория',road_2) then//F7 - Созд. кат.
if ForceDirectories(road+'\'+road_2) then ShowDirectory(road,ListView)
else ShowMessage('Невозможно создать каталог(и)');
46,119 : if Item <> nil then begin //F8 - Удалить
if ListView.SelCount = 1 then begin//выделен 1 файл
if Item.Caption<>'..' then
if Item.ImageIndex = 0 then begin//папка
if Application.MessageBox(PChar('Вы Уверены,'+#13#10+'что хотите удалить каталог '+Item.Caption+'?'),'Удаление...',MB_OkCancel)=1 then
if not RemoveTree(road+'\'+Item.Caption) then ShowMessage('Hевозможно удалить каталог '+Item.Caption)
end
else begin//файл
filename := Item.Caption;
if Item.SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];
if Application.MessageBox(PChar('Вы Уверены,'+#13#10+'что хотите удалить файл '+filename+'?'),'Удаление...',MB_OkCancel)=1 then
if not DeleteFile(road+'\'+filename) then ShowMessage('невозможно удалить файл '+filename)
end
end
else //выделено несколько файлов
if Application.MessageBox(PChar('Вы Уверены,'+#13#10+'что хотите удалить '+IntToStr(ListView.SelCount)+' файлов(а) ?'),'Удаление...',MB_OkCancel)=1 then
repeat
if Item.Caption<>'..' then
if Item.ImageIndex = 0 then begin//папка
if not RemoveTree(road+'\'+Item.Caption) then ShowMessage('Hевозможно удалить каталог '+Item.Caption)
end
else begin//файл
filename := Item.Caption;
if Item.SubItems[0]<>'' then filename := filename+'.'+Item.SubItems[0];
if not DeleteFile(road+'\'+filename) then ShowMessage('невозможно удалить файл '+filename)
end;
Item := ListView.GetNextItem(Item, sdAll, [isSelected])
until Item = nil;
showDirectory(road,ListView)
end //Удалить заканчивается
end{case}
end
end{case}
end;
procedure TForm1.ListViewClick(Sender: TObject);
begin
if Sender = ListView1 then begin
ListView2.Color := clScrollBar;
ListView1.Color := clWindow;
Chesked_1Or2 := First
end
else begin
ListView1.Color := clScrollBar;
ListView2.Color := clWindow;
Chesked_1Or2 := Second
end
end;
procedure TForm1.ListView0DblClick(var road : string; var ListView: TListView);
var i : integer; Item : TListItem;
begin
if ListView.Items[ListView.ItemIndex].ImageIndex = 0 then {directory}
if ListView.Items[ListView.ItemIndex].Caption = '..' then begin
i := length(road);
while road[i]<>'\' do dec(i);
road := copy(road,1,i-1);
ShowDirectory(road,ListView)
end
else begin
road := road+'\'+ListView.Items[ListView.ItemIndex].Caption;
ShowDirectory(road,ListView)
end
else begin{Любой файл}
Item := ListView.Items[ListView.ItemIndex];
with Item do
while Item<>nil do begin
if (SubItems[0] = 'exe')or(SubItems[0] = 'bat')or(SubItems[0] = 'com') then
MyWinExec(road+'\'+Caption+'.'+SubItems[0])
else
if (SubItems[0] = 'txt')or(SubItems[0] = 'log')or(SubItems[0] = 'ini')or(SubItems[0] = 'doc') then
MyWinExec('C:\WINDOWS\NOTEPAD.EXE '+road+'\'+Caption+'.'+SubItems[0])
else
if (SubItems[0] = 'bmp')or(SubItems[0] = 'jpg') then
MyWinExec('C:\WINDOWS\pbrush.EXE '+road+'\'+Caption+'.'+SubItems[0])
else
if (SubItems[0] = 'gif')or(SubItems[0] = 'jpeg')or(SubItems[0] = 'htm')or(SubItems[0] = 'html') then
MyWinExec('C:\Program Files\Internet Explorer\IEXPLORE.EXE '+road+'\'+Caption+'.'+SubItems[0])
else begin
OpenDialog1.Filter := 'Приложения (*.ехе)|*.exe';
OpenDialog1.InitialDir := 'C:\Windows';
OpenDialog1.Title := 'Файл '+Caption+'.'+SubItems[0]+' открыть с помощью...';
if OpenDialog1.Execute then
if SubItems[0] = '' then
MyWinExec(OpenDialog1.FileName+' '+road+'\'+Caption)
else
MyWinExec(OpenDialog1.FileName+' '+road+'\'+Caption+'.'+SubItems[0])
end;
Item := ListView.GetNextItem(Item, sdAll, [isSelected])
end
end
end;
procedure TForm1.ListViewCompare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin
if Sender = ListView1 then ListView0Compare(Item1, Item2, Compare, FirstP.numSort)
else ListView0Compare(Item1, Item2, Compare, SecondP.numSort)
end;
procedure TForm1.ListViewColumnClick(Sender: TObject;
Column: TListColumn);
begin
if Sender = ListView1 then begin
if Column.Caption = 'Название' then FirstP.numSort := 0
else
if Column.Caption = 'Расш.' then FirstP.numSort := 1
else
if Column.Caption = 'Размер, б' then FirstP.numSort := 2
else
if Column.Caption = 'Дата создания' then FirstP.numSort := 3
else
if Column.Caption = 'Скрытый' then FirstP.numSort := 4
else FirstP.numSort := 5;
ListView1.AlphaSort
end
else begin
if Column.Caption = 'Название' then SecondP.numSort := 0
else
if Column.Caption = 'Расш.' then SecondP.numSort := 1
else
if Column.Caption = 'Размер, б' then SecondP.numSort := 2
else
if Column.Caption = 'Дата создания' then SecondP.numSort := 3
else
if Column.Caption = 'Скрытый' then SecondP.numSort := 4
else SecondP.numSort := 5;
ListView2.AlphaSort
end
end;
procedure TForm1.ListViewDblClick(Sender: TObject);
begin
if Sender = ListView1 then begin
if ListView1.ItemIndex >= 0 then ListView0DblClick(FirstP.road,ListView1)
end
else begin
if ListView2.ItemIndex >= 0 then ListView0DblClick(SecondP.road,ListView2)
end
end;
procedure TForm1.ComboBoxDropDown(Sender: TObject);
var disk : char;
ComboBox : TComboBox;
begin
if Sender = ComboBox1 then ComboBox := ComboBox1
else ComboBox := ComboBox2;
ComboBox.Clear;
try
if DirectoryExists('A:') then ComboBox.AddItem('A:',nil);
if DirectoryExists('B:') then ComboBox.AddItem('B:',nil);
for disk := 'C' to 'Z' do
if DirectoryExists(disk+':') then ComboBox.AddItem(disk+':',nil)
finally
end
{disk := 'C';
while DirectoryExists(disk+':') do begin
ComboBox.AddItem(disk+':',nil);
inc(Byte(disk))
end}
end;
procedure TForm1.ComboBoxCloseUp(Sender: TObject);
begin
if Sender = ComboBox1 then begin
ListViewClick(ListView1);
if ComboBox1.Items[ComboBox1.Itemindex] <> '' then FirstP.road := ComboBox1.Items[ComboBox1.Itemindex];
ShowDirectory(FirstP.road,ListView1)
end
else begin
ListViewClick(ListView2);
if ComboBox2.Items[ComboBox2.Itemindex] <> '' then SecondP.road := ComboBox2.Items[ComboBox2.Itemindex];
ShowDirectory(SecondP.road,ListView2)
end
end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var p : TPoint;
begin
if Button = mbRight then begin
p := GetClientOrigin;
if Sender is TListView then PopupMenu1.Items[0].Enabled := True
else PopupMenu1.Items[0].Enabled := False;
PopupMenu1.Popup(p.X+X,p.Y+Y)
end;
end;
function InputD(Namef : string) : boolean;
var
Form : TForm;
Prompt: TLabel;
CheckBox : array [0..3] of TCheckBox;
ButtonOk,ButtonCansel : TButton;
i,attr : integer;
begin
result := false;
Form := TForm.Create(Application);
attr := FileGetAttr(Namef);
with Form do
try
Canvas.Font := Font; BorderStyle := bsDialog;
Caption := 'Свойства'; ClientWidth := 250;
ClientHeight := 150; Position := poScreenCenter;
Prompt := TLabel.Create(Form);
with Prompt do begin
Parent := Form;
Constraints.MaxWidth := form.Width;
Caption := ExtractFileName(Namef);
Left := (Form.Width - Prompt.Width) shr 1;
Top := 1
end;
for i := 0 to 3 do begin
CheckBox[i] := TCheckBox.Create(Form);
with CheckBox[i] do begin
Parent := Form; Left := 5; Top := 20+i*20
end
end;
CheckBox[0].Caption := 'Только чтение';
CheckBox[1].Caption := 'Скрытый';
CheckBox[2].Caption := 'Системный';
CheckBox[3].Caption := 'Архивный';
ButtonOk := TButton.Create(Form);
with ButtonOk do begin
Parent := Form;
Caption := 'Ok';
ModalResult := mrOk;
Default := True;
SetBounds(35,form.Height-60,75,25)
end;
ButtonCansel := TButton.Create(Form);
with ButtonCansel do begin
Parent := Form;
Caption := 'Cansel';
ModalResult := mrCancel;
Cancel := True;
SetBounds(form.Width-110,form.Height-60,75,25)
end;
if attr and faReadOnly <> 0 then CheckBox[0].Checked := true;
if attr and faHidden <> 0 then CheckBox[1].Checked := true;
if attr and faSysFile <> 0 then CheckBox[2].Checked := true;
if attr and faArchive <> 0 then CheckBox[3].Checked := true;
if ShowModal = mrOk then begin
if CheckBox[0].Checked then attr := attr or faReadOnly
else attr := attr and not faReadOnly;
if CheckBox[1].Checked then attr := attr or faHidden
else attr := attr and not faHidden;
if CheckBox[2].Checked then attr := attr or faSysFile
else attr := attr and not faSysFile;
if CheckBox[3].Checked then attr := attr or faArchive
else attr := attr and not faArchive;
if FileSetAttr(Namef,attr) = 0 then Result := True
end;
finally
Form.Free
end
end;
procedure TForm1.CharacteristicClick(Sender: TObject);
var ListView : TListView;
filename : string;
begin
if Chesked_1Or2 = First then begin
filename := FirstP.road;
ListView := ListView1
end
else begin
filename := SecondP.road;
ListView := ListView2
end;
if (ListView.SelCount<>0)and(ListView.Items[ListView.ItemIndex].Caption<>'..') then begin
filename := filename+'\'+ListView.Items[ListView.ItemIndex].Caption;
if ListView.Items[ListView.ItemIndex].ImageIndex<>0 then
if ListView.Items[ListView.ItemIndex].SubItems[0]<>'' then filename := filename+'.'+ListView.Items[ListView.ItemIndex].SubItems[0];
InputD(filename)
end
end;
procedure TForm1.GoOutClick(Sender: TObject);
begin
if CloseQuery then Close
end;
procedure TForm1.ListViewMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Sender = ListView1 then FormMouseUp(Sender,Button,Shift,X,Y+ListView1.Top)
else FormMouseUp(Sender,Button,Shift,X+ListView2.Left,Y+ListView2.Top)
end;
procedure TForm1.MenuF2Click(Sender: TObject);
var Key : word;
begin
Key := 113;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.MenuF3Click(Sender: TObject);
var Key : word;
begin
Key := 114;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.MenuF4Click(Sender: TObject);
var Key : word;
begin
Key := 115;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.MenuF5Click(Sender: TObject);
var Key : word;
begin
Key := 116;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.MenuF6Click(Sender: TObject);
var Key : word;
begin
Key := 117;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.MenuF7Click(Sender: TObject);
var Key : word;
begin
Key := 118;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.MenuF8Click(Sender: TObject);
var Key : word;
begin
Key := 119;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
TForm1.MenuSelectAllClick(Sender: TObject);
begin
if Chesked_1Or2 = First then ListView1.SelectAll
else ListView2.SelectAll
end;
procedure TForm1.MenuSelectInvertClick(Sender: TObject);
var ListView : TListView;
Item : TListItem;
begin
if Chesked_1Or2 = First then ListView := ListView1
else ListView := ListView2;
Item := ListView.Items[0];
while Item <> nil do begin
Item.Selected := not Item.Selected;
Item := ListView.GetNextItem(Item, sdAll, [isNone])
end
end;
procedure TForm1.MenuMemoryClick(Sender: TObject);
var Status : TMemoryStatus;
Form : TForm;
Labels: array [0..6] of TLabel;
Button : TButton;
i : integer;
begin
Status.dwLength := sizeof(TMemoryStatus);
GlobalMemoryStatus(Status);
Form := TForm.Create(Application);
with Form do
try
Canvas.Font := Font;
BorderStyle := bsDialog;
Caption := 'Вся Память';
ClientWidth := 350;
ClientHeight := 180;
Position := poScreenCenter;
for i := 0 to 6 do begin
Labels[i] := TLabel.Create(Form);
with Labels[i] do begin
Parent := Form;
Top := 5 + i*20
end
end;
labels[0].Caption := 'Количество используемой памяти в процентах (%) '+IntToStr(Status.dwMemoryLoad);
labels[1].Caption := 'Общее количество физической памяти '+IntToStr(Status.dwTotalPhys shr 10)+' Кб';
labels[2].Caption := 'Количество оставшейся физической памяти '+IntToStr(Status.dwAvailPhys shr 10)+' Кб';
labels[3].Caption := 'Объём страничного файла '+IntToStr(Status.dwTotalPageFile shr 10)+' Кб'#13#10;
labels[4].Caption := 'Свободного места в страничном файле '+IntToStr(Status.dwAvailPageFile shr 10)+' Кб';
labels[5].Caption := 'Общий объём виртуальной памяти '+IntToStr(Status.dwTotalVirtual shr 10)+' Кб';
labels[6].Caption := 'Количество свободной виртуальной памяти '+IntToStr(Status.dwAvailVirtual shr 10)+' Кб.';
for i := 0 to 6 do labels[i].Left := (Form.Width - Labels[i].Width) shr 1;
Button := TButton.Create(Form);
with Button do begin
Parent := Form;
Caption := 'Ok';
ModalResult := mrOk;
Default := True;
SetBounds((form.Width-Button.Width) shr 1,form.Height-60,75,25)
end;
ShowModal
finally
Form.Free
end
end;
procedure TForm1.MenuWorkWindowsClick(Sender: TObject);
begin
ShowMessage('Windows уже работает'+ FormatDateTime(' h "ч." n "м." s "с."',GetTickCount/86400000))
end;
procedure TForm1.MenuCascadnoClick(Sender: TObject);
begin
MyWinExec('rundll32 user,cascadechildwindows')
end;
procedure TForm1.MenuSvernutOknaClick(Sender: TObject);
begin
MyWinExec('rundll32 user,tilechildwindows')
end;
procedure TForm1.MenuUpdateDesctopClick(Sender: TObject);
begin
MyWinExec('rundll32 user,repaintscreen')
end;
procedure TForm1.MenuRebootExsplorerClick(Sender: TObject);
begin
MyWinExec('rundll32 shell,shellexecute Explorer')
end;
procedure TForm1.MenuControlPanelClick(Sender: TObject);
begin
MyWinExec('rundll32 shell32,Control_RunDLL')
end;
procedure TForm1.MenuDisplayPropertiesClick(Sender: TObject);
begin
MyWinExec('rundll32 shell32,Control_RunDLL desk.cpl')
end;
procedure TForm1.MenuCopyDiskAClick(Sender: TObject);
begin
MyWinExec('rundll32 diskcopy,DiskCopyRunDll')
end;
procedure TForm1.MenuFormatAClick(Sender: TObject);
begin
MyWinExec('rundll32 shell32,SHFormatDrive')
end;
procedure TForm1.MenuBistroExitWindowsClick(Sender: TObject);
begin
MyWinExec('rundll32 shell32,SHExitWindowsEx 2')
end;
procedure TForm1.MenuCloseSeansClick(Sender: TObject);
begin
MyWinExec('rundll32 shell32,SHExitWindowsEx 0')
end;
procedure TForm1.MenuPowerOffClick(Sender: TObject);
begin
MyWinExec('rundll32 shell32,SHExitWindowsEx 1')
end;
procedure TForm1.MenuHelpClick(Sender: TObject);
var Key : word;
begin
Key := 112;
ListViewKeyDown(Sender,Key,[ssLeft])
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if Chesked_1Or2 = First then showDirectory(FirstP.road,ListView1)
else showDirectory(SecondP.road,ListView2)
end;
procedure TForm1.Memo1DblClick(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.Append('Ничего не найдено.');
Memo1.ShowHint := false;
Memo1.Hide
end;
end.
program WinSock_Server;
{$APPTYPE CONSOLE}
uses
SysUtils,
Winsock,
Windows,
dialogs;
var
vWSAData : TWSAData;
vListenSocket,vSocket : TSocket;
vSockAddr : TSockAddr;
trId : THandle;
const
cPort = word(33);
cSigExit = 'q';
procedure SocketThread;
var SockName : TSockAddr;
aBuf : array of char;
vBuf : string;
vSize : integer;
s :TSocket;
BufSize : integer;
f: text;
begin
s := vSocket;
if s = INVALID_SOCKET then exit;
vSize := SizeOf(TSockAddr);
getpeername(s, SockName, vSize);
Writeln(format('Client accepted, remote address [%s].',[inet_ntoa (SockName.sin_addr)]));
vSize := sizeOf(BufSize);
getsockopt(s,SOL_SOCKET,SO_RCVBUF,PChar(@BufSize),vSize);
writeln(format('Receive buffer size [%d]',[BufSize]));
SetLength(aBuf,BufSize);
assignfile(f,'2.txt');
rewrite(f);
repeat
vSize := recv(s,aBuf[0],BufSize,0);
if vSize<=0 then Break;
SetLength(vBuf,vSize);
lstrcpyn(@vBuf[1],@aBuf[0],vSize);
write(f,vBuf);
writeln(format('Received from cleint: %s',[vBuf]));
until vBuf = 'q';
Writeln(format('Client disconnected, remote address [%s].',[inet_ntoa(SockName.sin_addr)]));
SetLength(aBuf,0);
closesocket(s);
closefile(f);
end;
begin
Writeln('Starting application...');
if WSAStartup($101,vWSAData)<>0 then Halt(1);
Writeln('Using Windows Sockets.');
vListenSocket := socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
Writeln(format('Creating socket on port [%d].',[cPort]));
if vListenSocket = INVALID_SOCKET then Halt(1);
FillChar(vSockAddr,SizeOf(TSockAddr),0);
vSockAddr.sin_family := AF_INET;
vSockAddr.sin_port := htons(cPort);
vSockAddr.sin_addr.S_addr := INADDR_ANY;
Writeln('Binding socket...');
if bind(vListenSocket,vSockAddr,SizeOf(TSockAddr)) <> 0
then Halt(1);
if listen(vListenSocket,SOMAXCONN) <> 0
then Halt(1);
Writeln('Socket status: listening.');
repeat
vSocket := accept(vListenSocket,nil,nil);
CreateThread(nil,0,@SocketThread,0,0,trId);
until false;
closesocket(vListenSocket);
WSACleanup;
end.
program WinSockC;
{$APPTYPE CONSOLE}
uses
SysUtils,
winsock,
dialogs;
const
cPort = 33;
var
vWSAData : TWSAData;
vSocket : TSocket;
vSockAddr : TSockAddr;
F: file;
NumRead : integer;
buf : array[1..2048] of Char;
begin
if WSAStartup($101,vWSAData)<>0 then Halt(1);
vSocket := socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if vSocket = INVALID_SOCKET then Halt(1);
FillChar(vSockAddr,SizeOf(TSockAddr),0);
vSockAddr.sin_family := AF_INET;
vSockAddr.sin_port := htons(cPort);
vSockAddr.sin_addr.S_addr := inet_addr('127.0.0.1');
if connect(vSocket,vSockAddr,SizeOf(TSockAddr)) = SOCKET_ERROR then Halt(1);
AssignFile(f,'1.txt');
reset(f,1);
repeat
BlockRead(f, Buf, SizeOf(Buf), NumRead);
if send(vSocket,buf[1],Length(buf)+1,0) = SOCKET_ERROR then Break;
until EOF(f);
closesocket(vSocket);
WSACleanup;
end.
Размещено на Allbest.ru
Подобные документы
Знакомство с проблемами обнаружения вредоносного программного обеспечения для мобильных устройств. Анализ функций антивирусного пакета Kaspersky Mobile Security 8.0. Характеристика наиболее распространенных антивирусных программ для мобильных устройств.
реферат [55,1 K], добавлен 11.01.2017Разработка городских систем на базе мобильных интерфейсов. Методики геокодирования в информационных системах, ориентированных на определенную группу пользователей. Прототипная реализация туристической карты для мобильных устройств на платформе Android.
дипломная работа [4,3 M], добавлен 05.12.2013Обзор современных мобильных операционных систем для смартфонов, планшетов, КПК или других мобильных устройств. Symbian OS. Android. IOS. Windows Phone. Blackberry OS. Tizen. Firefox OS. Ubuntu Phone OS. Sailfish OS. Их история, преимущества и недостатки.
реферат [38,6 K], добавлен 06.05.2016Мобильные операционные системы. Основные характеристики систем iOS и Android, их достоинства, недостатки и индивидуальные возможности. Анализ преимуществ лидирующих мобильных платформ для разработки приложения. Основные различия в механизмах безопасности.
дипломная работа [806,5 K], добавлен 01.01.2018Важность операционной системы для мобильных устройств. Популярность операционных систем. Доля LINUX на рынке операционных систем. История OS Symbian, BlackBerry OS, Palm OS. Отличия смартфона от обычного мобильного телефона. Учет ограничений по памяти.
презентация [477,3 K], добавлен 01.12.2015Описание функционирования магазина мобильных телефонов. Особенности создания базы данных учета товарооборота магазина мобильных телефонов в СУБД Microsoft Access. Концептуальное проектирование системы, инфологическое моделирование предметной области.
курсовая работа [9,5 M], добавлен 11.08.2012Основные концепции информационной визуализации, используемые в городских информационных системах. Разработка туристической карты города Гомеля для мобильных устройств на платформе Android. Обработка графической информации менеджером поверхностей.
дипломная работа [2,5 M], добавлен 28.05.2013Использование базы данных статистики последовательного соединения мобильных узлов беспроводной сети с использованием средств программирования Delphi и языка ADO. Оптимизация, отладка и тестирование программы AD-HOC сетей, решение аномалий в узлах сети.
дипломная работа [1,7 M], добавлен 13.06.2012Нейронные сети как средство анализа процесса продаж мобильных телефонов. Автоматизированные решения на основе технологии нейронных сетей. Разработка программы прогнозирования оптово-розничных продаж мобильных телефонов на основе нейронных сетей.
дипломная работа [4,6 M], добавлен 22.09.2011Разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. Обзор мобильных платформ. Экраны приложения и их взаимодействие. Графический интерфейс, руководство пользователя.
курсовая работа [2,6 M], добавлен 15.06.2013