Основы построения и функционирования интеллектуальных информационных систем. Былкин В.Д - 182 стр.

UptoLike

182
Продолжение прил.
ELSE BEGIN
curr_object: =top_f act;
last_try:=NIL;
find__object: =NIL;
WHILE ((curr_object<>NIL)AND(last_try=NIL)) DO
BEGIN
IF ( сurr_object^. name=f_object) THEN
BEGIN
find_object:=curr_object;
last_try: =curr_object
END;
curr_object: =curr_object^ .next END
END
END;
//извлекает из строки имя объекта и имя значения
PROCEDURE spIit(f_line:line_string; VAR
f_object, f_value: word_string );
VAR
st_left, st_right: integer;
BEGIN
st_right :=pos(PERIOD, f_line);
IF(s_right=length(f_line) )THEN f_line:=copy(f_line, 1 ,st_right-1);
st_Ieft:=pos(EQUALS,f_line);
st_right :=pos( COMMA, f_line);
IF ((st_left=0) AND (st_right=0)) THEN f_object:=f_line;
IF (st_right=0) THEN st_right:=length(f_line) + 1;
IF(st_Jeft>0)THEN BEGIN
f_object: =copy(f_line, 1 ,st_left-1);
IF (pos(')',f_object)=0) THEN f_value: = copy ( f_line, st_left+ 1, st_right-st_left-1)
END;
st_right:=pos(')',f_object);
IF(st_right>0)THEN f_o bj ect :=copy( f_line, 1 ,st_right-1)
END;
                                                                                              Продолжение прил.
ELSE BEGIN
    curr_object: =top_f act;
     last_try:=NIL;
     find__object: =NIL;
     WHILE ((curr_object<>NIL)AND(last_try=NIL)) DO
       BEGIN
       IF ( сurr_object^. name=f_object) THEN
              BEGIN
  find_object:=curr_object;
   last_try: =curr_object
  END;
   curr_object: =curr_object^ .next END
  END
  END;
  //извлекает из строки имя объекта и имя значения
 PROCEDURE spIit(f_line:line_string; VAR
 f_object, f_value: word_string );
 VAR
 st_left, st_right: integer;
 BEGIN
 st_right :=pos(PERIOD, f_line);
 IF(s_right=length(f_line) )THEN f_line:=copy(f_line, 1 ,st_right-1);
 st_Ieft:=pos(EQUALS,f_line);
 st_right :=pos( COMMA, f_line);
 IF ((st_left=0) AND (st_right=0)) THEN f_object:=f_line;
 IF (st_right=0) THEN st_right:=length(f_line) + 1;
 IF(st_Jeft>0)THEN BEGIN
    f_object: =copy(f_line, 1 ,st_left-1);
    IF (pos(')',f_object)=0) THEN f_value: = copy ( f_line, st_left+ 1, st_right-st_left-1)
    END;
 st_right:=pos(')',f_object);
 IF(st_right>0)THEN f_o bj ect :=copy( f_line, 1 ,st_right-1)
  END;



                                                       182