Есть такая функция: (проверка на дубликат)
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
Result:=true;
Break;
end;
end;
Отладчик смотрю: заходит в цикл FOR один раз со значением переменной j = 53
вызываю эту функцию в процедуре тоже в цикле FOR
for I := 0 to StrToInt(Edit1.Text)-1 do
if Dubl(md5Card(i+1)) then
Что делаю не так?
Примечание:
to Kasim_RI спасибо
to All
for j := 0 to 52 do
begin
if K[j].ID =md5 then
Здесь цикл почему-то работает так: начинается с j=53 и вниз, т.е. следующий j=52, j=51. Но лишь столько шагов сколько равно i+1 в вызываемой процедуре, т.е. вот здесь if Dubl(md5Card(i+1)) then
т.е. если i=4 то в функции j=53, j=52, j=51, j=50, j=49
Видимо так нельзя вызывать... цикл в цикле получается, но всё равно не понятно почему цикл в вызываемой функции работает зависимо от того как вызвать эту функцию...
Примечание:
to Kasim_RI
изменил на integer - всё по прежнему, чудеса )
Вообще такого не может быть, но есть ) Приглашаю в гости посмотреть :)
скриншот:
http://i055.radikal.ru/1006/91/87081cb1972c.png
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.