Пятница, 29.03.2024, 10:07 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
delphicode » Delphi » Вопросы по Delphi » Логическая бомба (Логическая бомба)
Логическая бомба
Marra_KeshДата: Суббота, 09.01.2010, 20:03 | Сообщение # 1
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
Всемогущий Dolphin, научи пожалуйста делать простейшие логические бомбы на Delphi 7, и если можно с подробным описанием.

Заведующий палатой #6
 
dolphinДата: Суббота, 09.01.2010, 20:37 | Сообщение # 2
Администратор
Сообщений: 906
Статус: Offline
Самый простейший пример

Program bomb;//Название может быть любым
Uses windows;
Begin
//Если дата 9.01.2010 то срабатывает код написанный
If datetostr(date)='9.01.2010' then
Begin
// Сам код, выполняющийся при выполнении условия
End;
End.


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
sergei-pit_bullДата: Суббота, 09.01.2010, 20:39 | Сообщение # 3
Частый гость
Зарегистрирован: 08.01.2010
Группа: Пользователи
Сообщений: 44
Статус: Offline
A чтo тaкoе лoгичecкaя бoмбa?
 
dolphinДата: Суббота, 09.01.2010, 20:45 | Сообщение # 4
Администратор
Сообщений: 906
Статус: Offline
sergei-pit_bull, http://ru.wikipedia.org/wiki/Логическая_бомба

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
sergei-pit_bullДата: Суббота, 09.01.2010, 20:52 | Сообщение # 5
Частый гость
Зарегистрирован: 08.01.2010
Группа: Пользователи
Сообщений: 44
Статус: Offline
biggrin тoчнo,кaк жe я caм тaм нe дoгaдaлcя пocмoтpeть тo.cпacибo
 
Marra_KeshДата: Суббота, 09.01.2010, 21:09 | Сообщение # 6
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
Помоги Dolphin! Я запустил Delphi 7, удалил Form1 и Unit1, потом Project>>>View Source. И ввёл вот этот:

program bomb;

uses Windows;
begin
If datetostr(date)='9.01.2010' then
begin
CopyFile('c:\1.txt','c:\2.txt',true) then
ShowMessage('Файл успешно скопирован!')
else ShowMessage('Неудача!');
end;

end.
Где здесь ошибка? Исправь.


Заведующий палатой #6
 
dolphinДата: Суббота, 09.01.2010, 22:00 | Сообщение # 7
Администратор
Сообщений: 906
Статус: Offline
program bomb;

uses Windows,Sysutils,messages,dialogs;

begin
If DateToStr(date)='9.01.2010' then
begin
if CopyFile('c:\1.txt','c:\2.txt',true) then
ShowMessage('Ôàéë óñïåøíî ñêîïèðîâàí!')
else ShowMessage('Íåóäà÷à!');
end;

end.


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Marra_KeshДата: Суббота, 09.01.2010, 22:52 | Сообщение # 8
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
Исправил, компилировал, но копирования не произошло! Почему?

Заведующий палатой #6
 
dolphinДата: Воскресенье, 10.01.2010, 19:55 | Сообщение # 9
Администратор
Сообщений: 906
Статус: Offline
Попробуй 09.01.2010

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Marra_KeshДата: Воскресенье, 10.01.2010, 21:26 | Сообщение # 10
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
Всё получилось большое спасибо!!!

Заведующий палатой #6
 
Marra_KeshДата: Понедельник, 18.01.2010, 18:28 | Сообщение # 11
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
Так...этому мы научились! А вот как можно Чуть-Чуть модернизировать этот код?

Заведующий палатой #6
 
dolphinДата: Понедельник, 18.01.2010, 18:45 | Сообщение # 12
Администратор
Сообщений: 906
Статус: Offline
И что же нужно сделать?

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Marra_KeshДата: Понедельник, 18.01.2010, 19:31 | Сообщение # 13
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
например: If datetostr(date)='18.01.2010' true, если нет то код возвращается в начало и это происходит пока не будет 18.01.2010

Заведующий палатой #6
 
dolphinДата: Понедельник, 18.01.2010, 23:22 | Сообщение # 14
Администратор
Сообщений: 906
Статус: Offline
Попробуй воспользоваться простым while ... true do begin ...

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
Marra_KeshДата: Вторник, 19.01.2010, 18:18 | Сообщение # 15
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
while ... true do begin ...--- Этот способ мне очень понравилься, Спасибо

Заведующий палатой #6
 
Marra_KeshДата: Суббота, 24.04.2010, 22:03 | Сообщение # 16
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
А почему по-времяни не получается?
If timetostr(time)=’22:22:00’ then
Begin
CopyFile('c:\1.txt','c:\2.txt',true);
End;
Где тута ошибка?


Заведующий палатой #6
 
JawДата: Воскресенье, 25.04.2010, 16:24 | Сообщение # 17
Участник
Зарегистрирован: 09.03.2009
Группа: Пользователи
Сообщений: 70
Статус: Offline
Если ты делаеш так:

Code

program Project1;

uses
Windows,Sysutils;

{$R *.res}

begin
If timetostr(time)='22:22:00' then
Begin
CopyFile('c:\1.txt','c:\2.txt',true);
End;
end.

То программа проверяет условие один раз и закрывается нужно вствлять в бесконечный цикл:

Code

program Project1;

uses
Windows,Sysutils;

{$R *.res}
begin
while true do
begin
If timetostr(time)='22:22:00' then
Begin
CopyFile('c:\1.txt','c:\2.txt',true);
end;
end;
end.

 
Marra_KeshДата: Воскресенье, 25.04.2010, 16:41 | Сообщение # 18
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
А можно как-то обойтись без "бесконечного цикла"?

Заведующий палатой #6
 
JawДата: Воскресенье, 25.04.2010, 19:19 | Сообщение # 19
Участник
Зарегистрирован: 09.03.2009
Группа: Пользователи
Сообщений: 70
Статус: Offline
Используй таймер.
 
Marra_KeshДата: Среда, 28.04.2010, 17:50 | Сообщение # 20
Постоянный
Зарегистрирован: 19.12.2009
Группа: Модераторы
Сообщений: 182
Статус: Offline
Как бы это правильно изъяснить.

program bomb;
uses Windows,Sysutils,messages,dialogs;
begin
If DateToStr(date)='09.01.2010' then
begin
CopyFile('c:\1.txt','c:\2.txt',true);
end;
end.

до 09.01.2010-копирование не происходит, в 09.01.2010-копируется, а после 09.01.2010-опять некопирует. Как сделать чтобы после 09.01.2010 всегда копировала, т.е. удаляешь файл 2.txt он опять копирует, каша какая-то получилась Sorry


Заведующий палатой #6
 
BioHEXДата: Среда, 28.07.2010, 18:08 | Сообщение # 21
Был не раз
Зарегистрирован: 27.07.2010
Группа: Пользователи
Сообщений: 17
Статус: Offline
Пользуйся:
Code
program LogicBomb;

uses
    Windows, SysUtils;

var
   BumDate:TDateTime;
begin
   BumDate:=StrToDate('28.07.2010');
   if Date>=BumDate then
    CopyFile('c:\1.txt','c:\2.txt',true);
end.

Все дело в том, что формат TDateTime - обычное число с плавающей точкой.
При этом дата представляется целой частью числа, а время — дробной. Преимущество этого подхода в том, что дату и время можно корректно складывать и вычитать.

Вот ссылка на описание функций по работе с датой и временем http://platonov-andrei.narod.ru/Delphi/DateTimeUtil.htm

Сообщение отредактировал BioHEX - Среда, 28.07.2010, 18:09
 
delphicode » Delphi » Вопросы по Delphi » Логическая бомба (Логическая бомба)
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz