Программирование
Веб программирование

Создаём билдер на барсике

 
 

Добрый время суток уважаемый читатель моей статьи, сегодня мы научимся создавать билдер на барсике (VISUAL BASIC 6.0)

Ох давно я не писал статьи для любимого vbbook.ru =) 

И так приступим, но сначала определимся с термином что такое билдер?, билдер это программа которая создаст другую программу, в нашем случае билдер будет создавать Hello World c возможностью менять сообщение.

План действий:

  1. Откомпилируем Hello World с небольшими изменениями.
  2. Напишем программу для замены ранее известного значения,то есть уже известного Hello world.
  3. Засунем Hello World в ресурсы чтобы его можно было тоскать всегда за собой.
  4. Profit!

Тепрь кодинг:

Запрограммируем сначала создаваемую билдером программу ПриветМир:

public sub form_load()

msgbox "Я вылупился мать вашу!",16,"Сообщение педрила"

end

end sub

Теперь откомпилируем нашу программу и запомним где она находится, она ещё нам пригодится. Далее мы откроем второй Visual Basic, и начнём писать сам билдер.

 Код билдера: 

Dim FileData() As Byte 
Private Sub Command1_Click()
If Dir(App.Path + "Результат.exe") <> "" Then Kill App.Path + "Результат.exe" 'проверяем старую версию файла, если старая версия есть то удаляем её
If Text1.Text = "" Or Text1 = "Введите текст" Then 'проверяем чтобы поле было заполнено данными пользователя
MsgBox "Так дело не пойдёт введи название!", 16, "Ошибка" 'даем пользователю понять что он не самый умный
Else 'если все данные пользователь ввёл верно то приступаем к созданию файла
FileData() = LoadResData("Hello", "CUSTOM")
Open App.Path + "Результат.exe" For Binary As #1 'открываем файл для записи
If Len(Text1) <> 22 Then' создаём условие если содержимое текстового поля не будет равным 22 символам тогда'надо дополнить недостоющее содержимое пробелами
Do Until Len(Text1) = 22 'создаём цикл с условием, что цикл перестанет работать только если символов в поле будет 22 Text1.Text = Text1 & " " 'проходя цикл каждый раз будет добавлять по одному пробелу DoEvents 'не даем программе показывать что она зависла Loop ' конец цикла
End If
FileData = Replace(FileData, "Я вылупился мать вашу!", Text1) ' заменяем в переменной старое значение: "Я вылупился мать вашу!", на сожержимое текстового поля
Put #1, , FileData() 'записываем изменённое содержимое переменной Filedata в файл.
Close #1 'закываем файл
If Dir(App.Path + "Результат.exe") <> "" Then MsgBox "Файл создан!", 13, "Оповещение" ' проверяем наличие файла в текущей папке, если файл есть выводим оповещение!
End If
Text1.Text = "" 'Очищаем поле от старых данных
End Sub

Private Sub Form_Load()
Text1.MaxLength = 22'Ограничиваем колличество введённый символов до 22, то есть то чем мы будем заменять'старые значения по длинне должно быть анологично заменяемому.
End Sub

Private Sub Text1_Click()
If Text1.Text = "Введите текст" Then Text1 = "" 'при нажатии на поле стандартная надпись исчезнет
End Sub

С кодом разобрались теперь перейдём к компонентам:

  1. Текстовое поле          1(шт)
  2. Кнопка                          1(шт)
  3. Ресурсы

Натягиваем компоненты на форму, теперь нам понадобится ранее скомпилированная программа привет мир, добавляем её в ресурсы.

Тут могут возникнуть проблемы:

  1. Вы не знаете как добавить программу в ресурсы
  2. Вы знаете как добавить программу в ресурсы, но у вас они не работают.

Решение первой проблемы лежит вот тут: клац

Вторая проблема разрешается полной переустановкой барсика, скорее всего вам понадобится найти

другой установщик.

 

Если всё идёт как по маслу читаем  далее:

 

Шаг №1

Добавим в билдер  Привет Мир, делается это вот так:

Нажимаем на кнопку Разное => В открывшемся окне указываем путь к ранее скомпилированному файлу Привет Мир => нажимаем Открыть, теперь файл в ресурсах нашего билдера.

Шаг№2

Переименовываем добавленный файл, делается это вот так:

Нажимаем на загруженную программу ПриветМир ПКМ => Properties... => В поле ID вписываем: HELLO => Нажимаем ОК

 

Ну всё компилируем билдер и любуемся результатами его работы.

 

На случай моего криворукого описания прикладываю сорец:

клац

 

Теперь опишу что как работает, плюсы и минусы:

 

Программа работает вот так:

Билдер вытаскивает из ресурсов готовую программу => Заменяет известное значение на содержимое текстового поля => Создаёт файл.

 

Теперь поговорим о минусах:

Минус этого метода в том что при изменении файла колличество символов должно быть таким же как и до изменения, в противном случае файл будет неработоспособен.

Для вирусописателей!: программам с дополнительными бинарными файлам в ресурсе антивирусы проверяют более тчательно, и проверяют ресурсы.

Из за этого я не мсог загрузить сорец на яндекс диск, так как он там типо нашёл вирус, скорее это из за ресурса!

 

О плюсах

Простота в изготовлении!

Минус можно обойти сделав очень длинное значение например в 100 или 1000 символов и потом удаляя програмным путём из созданой программы пустые символы, тем самым сохраня только полезные значения. 

 

 

 

Я искренне надеюсь что статья оказалось полезной, и простой в понимании так как я писал доступным читателям языком( с моей точки зрения).


Есть вопросы? Спроси на нашем форуме!!
DIGIUS470 [06.01.2014 23:50]

Если есть вопросы пишите их с низу

Stertor370 [07.01.2014 01:03]

Вопросов нет, но есть замечания: текст и прочее лучше хранить в стубе в виде ресурсов, а редактировать их билдером.

SIRIUS30 [02.01.2015 13:11]

Есть у меня билдер в исходниках, который работает с ресурсами.
У билдеров проблемы с антивирусами и все их трудно устранить.

SIRIUS30 [02.01.2015 13:19]

Но, думаю, год спустя это уже никому не нужно.

Stertor370 [02.01.2015 14:59]

У билдеров проблемы с антивирусами и все их трудно устранить.

Покажи код?



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.