Показать сообщение отдельно
  #4  
Старый 21.12.2011, 16:38
Harima Hario Harima Hario вне форума
Прохожий
 
Регистрация: 28.02.2011
Сообщения: 27
Репутация: 10
По умолчанию

Определил, что проблема возникает в одной конкретной строке:
firstb := Copy(s, Pos(substr, s) + 8, 3);

При следующем варианте процедуры все работает нормально

Код:
procedure SetMinMax(s:string);
var tmp,substr,firstb:string;
var secm:integer;
var firstas:Integer;
begin
  substr:='STOPPAGE';

  if(not maxFound) then
    begin
  if(Pos(substr, s) > 0) then
  begin
// firstb := Copy(s, Pos(substr, s) + 8, 3);
// showmessage(firstb);
    end;
  end;

end;

http://www.youtube.com/watch?v=Wnxu3nEcpPw

В открытом виде строки обнаружил кое-что интересное. Сам вариант процедуры:

Код:
procedure SetMinMax(s:string);
var tmp,substr,firstb:string;
var secm:integer;
var firstas:Integer;
begin
  substr:='STOPPAGE';

  if(not maxFound) then
    begin
  if(Pos(substr, s) > 0) then
  begin
firstb := Copy(s, Pos(substr, s) + 8, 3);
showmessage(firstb);

    end;
  end;

end;

http://www.youtube.com/watch?v=jd7-Xpdwc9k

То есть в самом начале вместо 000 копирует пустоту, а уже после – идут долгожданные 000. Подскажите тогда как реализовать проверку внутри процедуры, на количество копируемых символов… скажем если скопированный кусок не равен трем любым символам – ждем какое-то время и пробуем скопировать еще раз… мне кажется это должно решить проблему.
Ответить с цитированием