Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2015, 20:22   #1
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию Выполняемый програмно текст

Допустим у меня есть текстовый файл с текстом:

Form2.show; //это лишь пример

Как выполнить этот код через компилятор?
lastell вне форума Ответить с цитированием
Старый 07.01.2015, 20:35   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

- Как текстовую команду превратить в запрограммированное действие?
Ответ: "Написать отдельный скрипт к каждой команде".
Скрипт в общем понятие программиста - это просто функция.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 07.01.2015, 20:38   #3
lastell
Пользователь
 
Регистрация: 14.02.2014
Сообщений: 30
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
- Как текстовую команду превратить в запрограммированное действие?
Ответ: "Написать отдельный скрипт к каждой команде".
Скрипт в общем понятие программиста - это просто функция.
И как это реализовать? Можно пример?
lastell вне форума Ответить с цитированием
Старый 07.01.2015, 21:14   #4
NIKOLAYY2
Форумчанин
 
Регистрация: 23.12.2014
Сообщений: 220
По умолчанию

Можно поместить Form2.show; в dll-файл, по идее это тоже как бы текст, Но это не просто текст, а код и он выполнится программой если эту dll-ку вызвать из нее. А иначе в txt файле это просто текст.
NIKOLAYY2 вне форума Ответить с цитированием
Старый 08.01.2015, 09:18   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
Как выполнить этот код через компилятор?
Написать примитивный интерпретатор паскаля, который программного узнает что Form1 это системная(для скрипта) переменная с объектом, а Show это метод этого объекта. Типа RemObjects Pascal Script.

Сам Delphi этого не умеет, вообще.
Человек_Борща вне форума Ответить с цитированием
Старый 08.01.2015, 18:29   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от lastell Посмотреть сообщение
И как это реализовать? Можно пример?
когда-нибудь видел консоль? В консоль заложены команды с параметрами. Команды, которые программисты заложили в консоль, расписаны в виде функций на любом языке программирования и хранятся в DLL. Если надо взаимодействовать с консолью, то программист их загружает, а дальше вызывает через условие Case of.
Вообще, Скрипт - это набор команд, написанный для выполнения в какой-либо сторонней программе(те же модификации к различным программам, скины к плеерам или браузерные расширения используют скрипты). Они могут быть описаны только на языке программирования, который понятен программе.
Скажем так, в скрипте расписаны команды:
Код:
Show Form 1; 
ShowMessage Привет, пользователь!; 
SetText Form1, Сменили название окна;
Программа такой код не поймет(на двоичном языке не представили), ну а если расписать, то поймет.
Скажем так: Команды в консоли отделяются точкой с запятой.
Так можно отделить команды с строке, чтобы они были строго построчно и их можно было бы удобно обработать.
Далее мы знаем, что первое слово в строке - это название команды.
Последующие(отделяются в примере запятой) - это её параметры.
Если нам не додали параметров, то мы можем либо обработать команду с параметром по умолчанию, либо вывести сообщение об ошибке, либо вообще пропустить команду, чтобы не пугать пользователя непонятными сообщениями.
Если нам дали лишние параметры, то проще будет их не обрабатывать.
Далее мы должны испольнить команду, которую задали в консоль.
И тут вступает в силу наше старое доброе условие case of. Вообще, если бы это условие принимало любые типы переменных, а не только целые числа, то цены бы ему не было.
Проще изобразить это в коде:
Код:
var 
console_comand: string; //сама каманда
parametres_of_comand: TStringList; //проще передавать текстовые параметры, в коде команды их можно легко обработать. 
begin
...//здесь как-то получаешь имя команды и переданные с ней параметры
сase console_comand of 
'show': IConsoleInterface.Show(Parametres_of_comand); //об этом ниже
'settext': IConsoleInterface.SetText(Parametres_of_comand); 
'showmessage': IConsoleInterface.ShowMessage(Parametres_of_comand); 
...// и так далее
else 
ShowMessage('Неопознанная консольная команда');
end;
В данном случае я обрабатываю команды через вызов нужных функций(или процедур) интерфейса, код которых помещен в DLL. Интерфейс позволяет мне сэкономить место. Код консольных функций помещен в DLL и не занимает места в EXE. Так же в DLL их легко подправить, не надо пользователю загружать по новой exe.
Функции же, вызываемые в условие делают то, что должна была сделать команда с приложением. Параметры она достает сама из переданного ей списка.
Вот так всё собственно и выглядит. Я вот только не пойму, что вы всё таки пытаетесь сделать? Сделать компилятор - не изобретайте велосипед, друг мой, вы повторяете судьбу их программистов. Ведь именно через скрипты(только более сложные) компилятор переводит написанный на понятном себе и программисту языке программирования, код в Assembler, а затем в двоичный(машинный) код.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 08.01.2015, 18:58   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Как выполнить этот код через компилятор?
Если он есть то через ShellExecute() запустить его, передав параметром этот текстовый файл.
Вот пара обсуждений:
http://www.programmersforum.ru/showthread.php?t=48491
http://www.programmersforum.ru/showthread.php?t=119834
http://www.programmersforum.ru/showthread.php?t=52223
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
програмно раскрыть dbdatetimeediteh govorun1 Общие вопросы Delphi 8 16.02.2014 17:49
Дата записана как текст - как програмно исправить? riko_ltd Microsoft Office Excel 1 26.11.2012 08:01
Програмно изменить OnClick fineleave Общие вопросы Delphi 7 12.04.2011 19:07
програмно загруз веб страницу вставить текст и програмно нажать кнопку. asdn Общие вопросы .NET 0 05.10.2010 13:40
Програмно разблокировать компьютер Vansteyn Win Api 1 25.06.2007 18:18