Показать сообщение отдельно
Старый 05.08.2009, 20:08   #12
Трава
Нуждающийся
 
Аватар для Трава
 
Регистрация: 30.07.2009
Сообщений: 61
Написано одно полезное сообщение
Ответ: Интерпретатор в телефоне

Ну... Не знаю, я делал на VB интерпретаторы и виртуальные машины. У меня даж есть небольшая статейка по их созданию... Принцип один и тот же... Надо заюзать несколько функций - Copy(), Length, ну и главное функцию своего мозга Выложу небольшой пример, который обрабатывает одну команду. Можно будет наращивать с использованием if далее по аналогии. Думаю, тут ламеров конкретных нет, так что писать буду без комментов (не люблю я их писать почему-то).

program Interpreter;
var cmd : string;
var index : integer;
var button : command;
begin
ShowForm;
index := FormAddTextField('Команда:', '', 999, TF_ANY);
button := CreateCommand('Старт', CM_SCREEN, 1);
addCommand(button);
repeat
delay(100)
until GetClickedCommand = button;
cmd := FormGetText(index);
ClearForm;
If Copy(cmd, 0, 6) = 'print ' then
begin
index := FormAddString(Copy(cmd, 6, Length(cmd)));
delay(10000);
Halt;
end;
end.

Собс-но вот и сам пример. Всё вроде просто. Проверяем отрывок переменной cmd с 0 по 6-той символ и если он равен "print " тада выводим текст на экран. Тоже самое в бэйсике (не в тему, но покажу для сравнения).

Sub Main()
Dim command As String
command = InputBox("Команда:")
If Mid(command, 1, 6) = "print " Then
MsgBox Mid(command, 7, Len(command))
Else
MsgBox "Ошибка"
End If
End Sub

Mid() - эт Copy(), а Len() - эт Length(). В общем тоже самое тока на другом языке
(Offline)
 
Ответить с цитированием