Пример интерфейса для отладки шаблонов ввода Назад В начало Вперед

Для отладки шаблонов строк ввода можно воспользоваться следующим интерфейсом:

Рис. 10 Интерфейс отладки шаблонов ввода

В первом поле ввода рассматриваемого интерфейса можно задавать разнообразные шаблоны ввода для второго поля.

Во втором поле можно набирать символы в соответствии с шаблоном, введенном в первой строке.

Последнее поле ввода задает имя файла, в которое будет записываться процесс разбора строки в соответствии с заданным шаблоном.

Кнопка "Вычислить" упаковывает содержимое поля, для которого используется шаблон ввода и показывает его в соответствующей строке.

Кнопка "Проверить" выполняет синтаксическую проверку шаблона и выводит результат в строку, подписанную как "Результат проверки".

Кнопка "Установить" устанавливает имя лог-файла для записи процесса разбора строки.

//============================================================================
interface InputPatterns 'Шаблоны ввода значений по маске';
  show at (1,1,79,20);

//----------------------------------------------------------------------------
create view

var pattern : string;
	syntaxR : string;
	targetS : string;
	resultS : string;
	logName : string;
	title0  : string [23];
	title1  : string [23];
	title2  : string [23];
	title3  : string [23];
	title4  : string [23];

as select
  *
from
  x$files
;

//----------------------------------------------------------------------------
screen a1 'a1';

fields
  title0  : protect, skip, { font = { bold   = true } };
  pattern : noProtect;
  title2  : protect, skip, { font = { bold   = true } };
  targetS : noProtect, { inputmask = Pattern };
  title3  : protect, skip, { font = { bold   = true } };
  resultS : protect, skip;
  title1  : protect, skip, { font = { bold   = true } };
  syntaxR : protect, skip, { font = { italic = true } };
  title4  : protect, skip;
  logName : noProtect;

buttons
  cmXXXX;
  cmCheckSyntax;
  cmSetLogName;

<<

 .@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 .@@@@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 .@@@@@@@@@@@@@@@@@@@@
 .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 .@@@@@@@@@@@@@@@@@@@@
 .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 <. Вычислить .>  <. Проверить .>

 .@@@@@@@@@
 .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ <. Установить.>

>>
end;

//----------------------------------------------------------------------------
handleEvent

cmInit:
{
  set title0  := 'Шаблон:';
  set title1  := 'Результат проверки:';
  set title2  := 'Ввод по шаблону:';
  set title3  := 'Результат ввода:';
  set title4  := 'Лог-файл:';
  set logName := 'InFormat.Dbg';
  set pattern := 'R-%>ББ 999999';
}

cmCheckSyntax:
{
  if DefineFormat('', pattern) then
	set syntaxR := 'ok'
  else
	set syntaxR := GetFormatError;

  SelectField(#pattern);
}

cmXXXX:
{
  set resultS := targetS;
  SelectField(#targetS);
}

cmSetLogName:
  SetFormatLogFileName(logName);

end;
end.