Определил, что проблема возникает в одной конкретной строке:
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. Подскажите тогда как реализовать проверку внутри процедуры, на количество копируемых символов… скажем если скопированный кусок не равен трем любым символам – ждем какое-то время и пробуем скопировать еще раз… мне кажется это должно решить проблему.