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