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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 17:01   #1
lifeton
 
Регистрация: 27.05.2010
Сообщений: 9
По умолчанию вложенный цикл FOR в вызываемой функции

есть функция (проверяет на дубликат):
function TForm1.Dubl(md5:string): Boolean;
var
j:byte; f:boolean;
begin
Result:=false;
for j := 0 to 52 do
begin
if K[j].ID =md5 then
begin
Result:=true;
Break;
break;
end;
end;

Вызываю её в другой процедуре тоже в цикле FOR
for I := 0 to StrToInt(Edit1.Text)-1 do
if Dubl(md5Card(i+1)) then //md5Card - функция возвращающая строку

Смотрю отладчиком.
Например на шаге когда i=4
цикл в функции Dubl начинается с j=53 потом j=52, j=51, j=50, j=49
Т.е. он почему-то идет downto с 53 и только i+1 шаг, т.е. столько сколько указал в Dubl(md5Card(i+1))

Помогите
lifeton вне форума Ответить с цитированием
Старый 02.06.2010, 17:13   #2
krGorka
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 35
По умолчанию

В function TForm1.Dubl(md5:string): Boolean;
3 begin и 2 end. Как она может работать? И 2 Break подряд;
krGorka вне форума Ответить с цитированием
Старый 02.06.2010, 17:19   #3
lifeton
 
Регистрация: 27.05.2010
Сообщений: 9
По умолчанию

krGorka, ну очевидно же опечатка. Вместо 2-го брейка - end. Подправил. Проблема не в этом )

вот для наглядности чуда:
http://i055.radikal.ru/1006/91/87081cb1972c.png
lifeton вне форума Ответить с цитированием
Старый 02.06.2010, 17:20   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это оптимизатор, оптимизировал он все верно, так что ищите ошибку в другом месте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.06.2010, 17:26   #5
lifeton
 
Регистрация: 27.05.2010
Сообщений: 9
По умолчанию

В смысле всё верно?
а как же тогда пользоваться отладчиком?
почему цикл в вызываемой функции идет downto и только i+1 шаг
а не как положено с j=0 до j=52?
lifeton вне форума Ответить с цитированием
Старый 02.06.2010, 17:28   #6
lifeton
 
Регистрация: 27.05.2010
Сообщений: 9
По умолчанию

Я понимаю что где-то ошибка, но где? в каком месте смотреть? ошибка в вызове или в самой функции... хде?
lifeton вне форума Ответить с цитированием
Старый 02.06.2010, 17:35   #7
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Цитата:
Сообщение от lifeton Посмотреть сообщение
Я понимаю что где-то ошибка, но где? в каком месте смотреть? ошибка в вызове или в самой функции... хде?
А что за ошибка? Её вид... Я чёт так и не понял.
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки, процедуры и функции, цикл [Delphi] Sannyore Помощь студентам 4 09.03.2010 17:56
Цикл с параметром, массивы, матрицы, функции, файловый тип Dimasik777 Помощь студентам 7 30.11.2009 13:38
Switch вложенный в бесконечный цикл coper Общие вопросы C/C++ 2 16.11.2009 02:31
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34