| 
				
				Логическая бомба
				 | 
 | 
| 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 
 
 |   т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  |  
|   | 
 |    |