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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2014, 08:33   #1
weech
Пользователь
 
Аватар для weech
 
Регистрация: 16.11.2011
Сообщений: 91
По умолчанию

Здравствуйте. Есть такой код:
Код:
const
  PageArrayCount = 8;
  PageArray: Array[1..PageArrayCount] of Pages = ((PI:'login_attempt=1>';PN:Main),(PI:'home_edit_profile';PN:Inside),
    (PI:'Your profile was';PN:Banned1),(PI:'Please Confirm';PN:Banned2),(PI:'Add your mobile';PN:Phone),
      (PI:'from accessing your';PN:Security),(PI:'Redirecting';PN:Inside),(PI:'e shares with friends,';PN:User));

...

var
  i,j: integer;
begin
  for i := 0 to HtmlCode.Lines.Count-1 do
    for j := 1 to PageArrayCount do
      if Pos(PageArray[j].PI,HtmlCode.Lines[i]) > 0 then begin
        FCurrentPageName:= PageArray[j].PN;
        PageLoaded:= true;
        PageTimer.Enabled:= false;
      end;
end;
При его выполнении, переменная j принимает значения не 1-8, а 0-7, значения элементов массива тоже смещаются на 1 влево, не вызывая при этом исключения, но условие в if так и не выполняется. Никогда с таким не сталкивался, в чем может быть проблема?

upd: Попробовал присваивать j единицу между циклами. теперь происходит обращение и к 9-ому элементу массива, значение которого равно '汔`ᄡ'#0'汔`ᄉ'#0'汔`ᄊ'#0'汔`ᄋ'#0'汔`ᄌ'#0 '汔`ᄍ'#0'汔`ᄎ'#0'汔`ᄏ'#0'汔`ᄐ'#0'汔`ᄑ'#0 '汔`ᄒ'#0'汔`'#$FFBF#0'汔`ᅠ'#0'汔`ᄀ'#0'汔 `ᄁ'#0'汔`ᆪ'#0'汔`ᄂ'#0'汔`ᆬ'#0'汔`ᆭ'#0'汔 `ᄃ'#0'汔`ᄄ'#0'汔`ᄅ'#0'汔`ᆰ'#0'汔`ᆱ'#0'汔 `ᆲ'#0'汔`ᆳ'#0'汔`ᆴ'#0'汔`ᆵ'#0'汔`ミ'#0'汔 `ム'#0'汔`メ'#0'汔`モ'#0'汔`ヤ'#0'汔`ユ'#0'汔 `ヨ'#0'汔`ラ'#0'汔`リ'#0'汔`ル'#0'汔`レ'#0'汔 `ロ'#0'汔`ワ'#0'汔`ン'#0'汔`゙'#0'汔`゚'#0'汔 `タ'#0'汔`チ'#0'汔`ツ'#0'汔`テ'#0'汔`ト'#0'汔 `ナ'#0'汔`ニ'#0'汔`ヌ'#0'汔`ネ'#0'汔`ノ'#0'汔 `ハ'#0'汔`ヒ'#0'汔`フ'#0'汔`ヘ'#0'汔`ホ'#0'汔 `マ'#0'汔`ー'#0'汔`ア'#0'汔`イ'#0'汔`ウ'#0'汔 `エ'#0'汔`オ'#0'汔`カ'#0'汔`キ'#0'汔`ク'#0'汔 `ケ'#0'汔`コ'#0'汔`サ'#0'汔`シ'#0'汔`ス'#0'汔 `セ'#0'汔`ソ'#0'汔`⦆'#0'汔`。'#0'汔`「'#0'汔 `」'#0'汔`、'#0'汔`・'#0'汔`ヲ'#0'汔`ァ'#0'汔 `ィ'#0'汔`ゥ'#0'汔`ェ'#0'汔`ォ'#0'汔`ャ'#0'汔 `ュ'#0'汔`ョ'#0'汔`ッ'#0'汔`p'#0'汔`q'#0'汔 `r'#0'汔`s'#0'汔`t'#0'汔`u'#0'汔`v'#0'汔 `w'#0'汔`x'#0'汔`y'#0'汔`z'#0'汔`{'#0'汔 `|'#0'汔`}'#0'汔`~'#0'汔`⦅'#0'汔``'#0'汔 `a'#0'汔`b'#0'汔`c'#0'汔`d'#0'汔`e'#0'汔 `f'#0'汔`g'#0'汔`h'#0'汔`i'#0'汔`j'#0'汔 `k'#0'汔`l'#0'汔`m'#0'汔`n'#0'汔`o'#0'汔 `P'#0'汔`Q'#0'汔`R'#0'汔`S'#0'汔`T'#0'汔 `U'#0'汔`V'#0'汔`W'#0'汔`X'#0'汔`Y'#0'汔 `Z'#0'汔`['#0#$A6B8'䅃쌀'#$18#0'ᄘ'#0'ᶘ'#0'㞘'#0' 䢘'#0'丸'#0'Ā̂Ԅ܆ईଊഌ༎ᄐጒᄔᘕ᠗ᨙᰛḝ‟∡␣☥⠧⤡⬪'# $2D2C'⼮✰ᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑㄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑ ᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑ㈑ᄳᄑᄴ㘵㠷㨹ᄑᄑ ᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑᄑ㬑㰼㰼㰼㰼㴽㴽㴽㴽㴽㴽㴽㴽㴽㴽㴽 㴽ᄽ㼾䀑䉁䑃䙅䡇䡈䩉䱋䡍䡎䡏䡈䡈䡈䡈䡈䡈䡈ᄑ們䡑䡈䡈䡈䡈䡈ᄑᄑ䡒䡈䡈䡈 䡈䡈䡈䡈䡈�

Последний раз редактировалось Stilet; 24.11.2014 в 09:57.
weech вне форума Ответить с цитированием
Старый 24.11.2014, 08:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не может j такие значения принимать. Разве что оптимизатор цикл сделал не от 1 до 8, а от 8 до 1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.11.2014, 09:11   #3
weech
Пользователь
 
Аватар для weech
 
Регистрация: 16.11.2011
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Не может j такие значения принимать. Разве что оптимизатор цикл сделал не от 1 до 8, а от 8 до 1
Согласен, что не может, и тем не менее: http://www.screencapture.ru/file/A5Ba324c
weech вне форума Ответить с цитированием
Старый 24.11.2014, 09:19   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А на ум не приходило, что тот Watches после выхода из цикла по j? А точку останова внутри цикла и пошаговку пробовать не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.11.2014, 11:11   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

После выхода из цикла счетчик цикла считается неопределенным. Ну а по факту у вас он равен 9, что вполне естественно. Не понятно, в чем вопрос?
Arigato вне форума Ответить с цитированием
Старый 24.11.2014, 12:58   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Накидывай за каждый проход цикла значение j в Form.Caption или просто в текстовую строку, а потом гляди че получается. И действительно непонятно почему не отслеживаем значения конкретно на местах? Например, бреакпоинт на условии и вполне себе смотрим j.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 24.11.2014, 16:12   #7
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Накидывай за каждый проход цикла значение j в Form.Caption или просто в текстовую строку, а потом гляди че получается. И действительно непонятно почему не отслеживаем значения конкретно на местах? Например, бреакпоинт на условии и вполне себе смотрим j.
Надо только не забыть отключить оптимизатор ибо исполняться может код совершенно отличный от того, что показывается на экране. Иногда даже с безумным числом ошибок (кивок в сторону XE5).
StriderX вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блог сломался rrrFer Обсуждение статей 7 06.01.2015 21:29
WORD 2007/2010 сломался Дмитрий П Софт 5 01.02.2013 15:23
wpf, сломался ресайз окна stupidboy WPF, UWP, WinRT, XAML 1 19.10.2011 18:50
Сломался ноутбук может кто знает? Biggie Smalls Компьютерное железо 5 12.08.2011 12:39