Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2011, 05:28   #1
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
Вопрос Странный баг...

Есть следующий код:

var
str,str2,rstr: string;
i,j: integer;
begin
rstr:='array';
write('--------Vvedite stroku dlinoy d0 100 simvolov i soderjashuyu sochetanie "array".');
write(' Programa proizvedet zamenu sochetaniya "array" na sochetanie "simple".');
write(' ');
write('**str=');
readln(str);
i:=1;
If length(str)>100 then str:=copy(str,1,100);
while (i<=length(str)) do begin
j:=1;
If (length(str)-i)>=4 then
While str[i+j-1]=rstr[j] do Inc(j);
If j>=5 Then begin
str2:=str2+'simple';
i:=i+5;
end else begin
str2:=str2+str[i];
Inc(i);
end;
end;
write('--------Na vihode poluchili stroku s sochetanirm "simple" vmesto "array"');
write(' ');
write('**str2=');
writeln(str2);
write('--------Najmite klavishu "Enter" dlya vihoda iz programmi');
readln;
end.

Он должен в веденной строке искать сочетание 'array' и заменять его на сочетание 'simple'. Но я заметил один странный баг.
Если ввести 'arra[пробел]' то программа воспринимает это как 'array'.
Ищу эту ошибку уже месяц.... Не могу найти! Помогите плз!
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Старый 12.11.2011, 09:26   #2
xakkkkker
Форумчанин
 
Аватар для xakkkkker
 
Регистрация: 15.12.2007
Сообщений: 226
По умолчанию

Обязательно надо так изощряться. А нельзя использовать pos()? или надо как у вас?
xakkkkker вне форума Ответить с цитированием
Старый 12.11.2011, 09:40   #3
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
По умолчанию

Уже нельзя...
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Старый 12.11.2011, 10:15   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,311
По умолчанию

Попробуй заменить заменить
Код:
If j>=5 Then begin
на
Код:
If j>5 Then begin
В коде j указывает на следующий ожидаемый символ.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 12.11.2011, 10:24   #5
munthrekosh
Пользователь
 
Аватар для munthrekosh
 
Регистрация: 12.11.2011
Сообщений: 80
По умолчанию

Отлично! Во я дебил! И эту ошибку я не мог найти!!! Да как так то?!
Ш.Р.Ю.-программист! йопта!!!
munthrekosh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странный знак | akellaukr Microsoft Office Access 3 04.06.2011 02:22
Borderstyle - BsNone. Странный баг... MyLastHit Общие вопросы Delphi 2 21.12.2010 18:42
[B]Странный макрос[/B] mephist Microsoft Office Word 10 12.06.2009 11:46
Странный баг при работе с разделяемой памятью в C mephisto123 Qt и кроссплатформенное программирование С/С++ 2 01.08.2008 18:10
Странный тип Yuran Общие вопросы Delphi 4 10.06.2008 10:11