Последние записи
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
20th
Фев
Маленькие помощники программиста. Часть 2
Posted by Chas under Журнал, Статьи
Часто самой большой проблемой программиста становится сохранение проекта в целости и сохранности. Как не допустить уничтожения проекта в процессе работы и создать сайт для любого браузера – об этом вы узнаете в статье «Маленькие помощники программиста».
Алексей Шишкин
by AlexCones http://flsoft.ru
В этой части нашего «путешествия» по обстановке программиста будущего я бы хотел рассказать о таком важном слове, как бекап*, и о моем «уголке веб-девелопера».
(англ) BackUp – резервная копия
Итак, начнем с бекапов, как самого важного в жизни программистов. Да, вы не ослышались, это важнее, чем знать в совершенстве какой-либо язык программирования, ибо, если дать двум программистам, новичку и профессионалу, в руки среду разработки и дать инструмент бекапа только в руки новичка, при повреждении данных именно он выйдет победителем. Итак, начнем. Для начала нам понадобится OpenSource** программа 7zip и Delphi-образная (к примеру, Lazarus) среда разработки.
- Для начала создадим на жестком диске папку, куда будем складывать наши бекапы (см. рисунок 1):
Рис. 1. Создаем директорию*** для копий
- Определившись с папкой, загружаем утилиту 7z http://www.7-zip.org
- Устанавливаем ее в папку по вашему усмот- рению. Отныне я буду называть ее %7ZFolder%, а папку, которую мы создали для хранения бекапов, – %CopyFolder%.
- Теперь зайдем в %7ZFolder% и создадим там *.txt файл следующего содержания:
7z.exe a %DATE%.7z D:\Finder
Move %DATE%.7z D:\Copy\Finder\
Cd D:\Copy\Finder
Renamer %DATE%.7zГде, в данном случае: D:\Finder – папка проекта, который мы будем бекапить, D:\Copy\Finder – %CopyFolder%.
- Переименовываем этот файл в *.bat
- Но что же значит загадочный Renamer? Его созданием мы сейчас и займемся.
- Открываем среду разработки и, создав Console Application, пишем:
Program Renamer;
Uses Windows, SysUtils;
Var
Name1, Name2,S : String;
I : Integer;
Begin
Name1 := ParamStr(1);
S := Name1;
Name2 := »;
While Pos(‘\’,S)<>0 Do Begin
Name2 := Name2 + S[1];
Delete(S,1,1);
End;
For I := 1 to Length(S) — 2 Do
Name2 := Name2 + S[I];
Name2 := Name2 + TimeToStr(Time) + S[Length(S)-2] +
S[Length(S)-1] + S[Length(S)];
For I := 1 To Length(Name2) Do
If Name2[I] = ‘:’ Then Name2[I] := ‘.’;
RenameFile(Name1, Name2)
end.Думаю, не надо пояснять, что делает этот код. Компилируем его и отправляем Renamer.exe в %CopeFolder%.
* Комментарий автора.
С открытым исходным кодом, распространяющаяся по лицензии
GNU GPL.* Комментарий автора.
Имена для папок желательно выбирать короткими и без кириллицы: будет меньше проблем с *.bat файлом. - Вернемся к нашей основной мысли: как же нам запустить все это вместе? Создадим новый проект (как и прошлый, он будет Console Application). Обратите внимание, что в обоих случаях строк {$ Console Application} НЕ БУДЕТ. Сделано это для того, чтобы консоль не мозолила нам глаза:
program Watcher;
uses ShellAPI, Windows;
Var
Look : Boolean = FALSE;
Gotcha : Boolean = FALSE;
Hand : Integer;
Begin
While True Do Begin
(* Search for Lazarus *)
Hand := 0;
Hand := FindWindow(‘Window’, ‘Lazarus IDE v0.9.28.2 бета — Finder.lpi’);
Gotcha := (Hand <> 0);
If (Look) And Not(Gotcha) Then Begin
ShellExecute(0,‘Open’,‘D:\Programs\7-Zip\Arc.bat’, Nil, Nil, SW_HIDE);
Look := FALSE;
End
Else If Not(Look) And (Gotcha) Then Look := TRUE;
Sleep(10 * 1000);
End
End.Разумеется, следует заменить директории в коде на свои. Обратите внимание, что я использовал для поиска заголовок и класс окна лазаруса, так как свой проект я создаю в нем. Замените их на класс и заголовок окна своей среды разработки.
- Итак, мы почти пришли, осталось поместить ярлык на эту программу в папку ПУСК ? Все программы ? Автозагрузка, и дело сделано. Теперь достаточно перезагрузить компьютер или вручную запустить Watcher.exe, и система начнет работать. Как же она работает? Очень просто:
Watcher раз в 10 секунд ищет заголовок и класс среды разработки с открытым проектом для бекапа:
- если она найдена, флаг Gotcha будет >0;
- продолжаем следить за процессом, и если окно не будет найдено, действуем;
- запускается bat файл Arc.bat;
- он бекапит папку с проектом и дает ей имя сегодняшней даты;
- затем он отправляет его Renamer`у, который переименовывает его согласно дате и времени.
Результат наших действий (см. рисунок 2):
Рис. 2. Часть бекапов в папке после часа работы (чтобы уменьшить их количество, измените число после Sleep в большую сторону)
Итак, мы научились бекапить свои проекты, и теперь перебои электричества и повреждения жесткого диска нам не страшны. Только не забывайте хотя бы изредка сбрасывать свои бекапы на съемный диск или CD/DVD.
Перейдем ко второй части нашего рассказа
ведь я еще обещал рассказать про свой «уголок» веб-девелопера… Понадобилось мне как-то сваять в блокноте сайт для одного из своих проектов. Разумеется, я обладал некоторыми основами сайтостроения, но, разумеется, я (как и большинство веб-девелоперов) не знал заранее, как сайт будет выглядеть во всех браузерах.
И сейчас расскажу, как я избавился от этой проблемы.
Для создания этого древнего заклинания нам потребуется:
- артефакт «Флеш карта» размером от 1 Гб; доступ в Интернет на 15-20 минут;
- Delphi-образная среда разработки;
- 10 минут приготовлений.
Итак, переходим на сайт http://torwald.ru/72 и выкачиваем ВСЕ браузеры, которые видим. По очереди запускаем инсталляторы и устанавливаем их на флешку. Некоторые из браузеров даже не потребуют установки – их просто копируем.
Далее пробуем воссоздать такую схему (см.рисунок 3):
Рис. 3. Папки с программами
Теперь, когда мы все это установили, объединим все это одним заклинани- ем, чтобы не утруждать себя чтением древних свитков каждые пять минут:
Uses ShellAPI, Windows;
Var
FileName : String;
CurDir : String;
F : TextFile;
Begin
FileName := ParamStr(1);
CurDir := ‘H:\WEB’;
AssignFile(F, CurDir + ‘\Run.bat’);
Rewrite(F);
WriteLn(F, CurDir + ‘\InternetExplorer-6\ie6.exe ‘ +FileName);
WriteLn(F, CurDir + ‘\InternetExplorer-7\ie7.exe ‘ +FileName);
WriteLn(F, CurDir + ‘\InternetExplorer-8\ie8.exe ‘ +FileName);
WriteLn(F, CurDir + ‘\Chrome-4.0\Chrome.exe ‘ + FileName);
WriteLn(F, CurDir + ‘\Safari-3.2\safari.exe ‘ + FileName);
WriteLn(F, CurDir + ‘\Firefox-2\firefox2.exe ‘ + FileName);
WriteLn(F, CurDir + ‘\Firefox-3\firefox3.exe ‘ + FileName);
WriteLn(F, ‘pause’);
CloseFile(F);
ShellExecute(HWND(0), ‘Open’, PChar(‘Run.bat’), »,
PChar(‘H:\WEB’), SW_SHOWNORMAL);
End.
Вместо H:\ следует подставить букву диска своей флешкарты. Поместим эту программу в папку WEB на флешкарте и создадим ярлык на ней, который поместим в директорию C:\Documents and settings\%Username%\SendTo. Не забудьте переименовать ярлык в WEB test.lnk
Все, заклинание готово! Запускать его будем так: клик правой кнопкой на HTML\HTM документ, который необходимо проверить, и выбираем ОТПРАВИТЬ – WEB test. Документ откроется по очереди в разных браузерах, и вы сможете увидеть, как он выглядит у пользователей.
Заключение
При разработке использовалась среда разработки – Lazarus 0.9.28 и блокнот. Дело шло, как ни странно, под «окошками».
Итак, мы научились сохранять свои проекты в условиях глобальных катаклизмов и создавать сайты для каждого браузера. Это лишь часть знаний, которые помогут вам в жизни, но надеюсь, что когда-нибудь они вам пригодятся.
Удачи!
Ссылки
- 7zip архиватор http://www.7-zip.org
- Portable версии браузеров http://torwald.ru/72
- Скачать среду разработки Lazarus http://www.lazarus.freepascal.org
Статья из седьмого выпуска журнала «ПРОграммист».
Обсудить на форуме — Маленькие помощники программиста. Часть 2
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)