Почему-то не входит в case
- Код: Выделить всё
function FirstTag (var Str:String):String;
Var
Start, Finish:boolean;
StrTag:String;
Begin
// ShowMessage ('переписывается((((');
If Str='' then
begin
Result:='';//отсев ошибочного использования
ShowMessage ('Пустая строка');
end else
begin
Start:=False; // инициализация переменных.
Finish:=False;
Result:='';
StrTag:='';
while Finish<>True do //
begin
ShowMessage ('Str='+ Str);
if Str='' then
Begin
Finish:=True;//выход из цикла по исчерпанию строки
ShowMessage ('выход из цикла по исчерпанию строки');
End else
Begin
StrTag:=Copy(Str,1,1);
case Str of
'<':
Begin
if Start=true then
Begin //это второй символ '<'
Finish:=True; // штатный выход если это все же не тег.
ShowMessage (' штатный выход если это все же не тег.');
end else //это первый символ '<'.
begin // начинаем копировать предположительно тег в строку
Start:=True;
Result:=Result+StrTag;
Delete(Str, 1, 1);
end
end;
'>':
Begin
Result:=Result+StrTag;
Delete(Str, 1, 1);
if Start=true then
begin
Finish:=True;// штатный выход если тег
ShowMessage (' штатный выход если тег.');
end else begin end;
end;
else Begin
Result:=Result+StrTag; // обычный символ
Delete (Str, 1, 1);
End;
end;
end;
end;
end;
end;
Добавлено спустя 6 часов 2 минуты 13 секунд:
нашел ошибку. Классическая логическая ошибка(((
- Код: Выделить всё
StrTag:=Copy(Str,1,1);
case Str of