Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы со средой, Проблемы с масивами, обнул. переменных 
:(
    Опции темы
Black_Joker
  Дата 29.3.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



Внутри цикла массив zz (заполняться должна лишь часть) заполняется правильно, по выходу из цикла ВСЕ элементы массива оказываются заполнеными значением переменной slmaxb.
Trade поле записи collection. Масив maski "получается" в начале "кнопки" и по ходу всей программы остается правильным.


Код
for i:= 0 to maxb do  with collection[i] do
if (Pos(maski[0], Trade) > 0) and
   (length(Trade) >= Pos(maski[0], Trade) + lmaski - 1) then
 begin
  for j:= 0 to maxb do zz[j]:= -1;
  j:= 1; n:= -1;
  while (j <= length(Trade)-lmaski+1) do
  begin
   for slmaxb:= 0 to kmaski do
    if copy(Trade, j, length(maski[slmaxb])) = maski[slmaxb] then
    begin
     inc(n); zz[n]:= slmaxb;
     j:= j + length(maski[slmaxb]) - 1; Break;
    end;
   inc(j); //**
  end;
//***


В точке ** все павильно, а в *** - все не правильно???
При этом работает лишь на части примеров. На некоторых примерах, ни чем принципиально не отличающихся - не работает.
Раньше место zz стоял массив ez, активно ипользующийся в последующем коде.
Ситуация была просто порадоксальная: стартую; ввожу параметры (1) - работает; ввожу парамеры (2) - не работает; ввожу параметры (1) - не работает; далее независимо от чего-либо - не работает.
Стартую; вожу параметры (2) - не рабоатет; ввожу параметры (1) - не работает; далее независимо от чего-либо - не работает.

Вопросы до кучи:
Что лучше: мало переменных используемых постоянно или много переменных используемых по 1 разу?
Как обнулить (обновить) память?

Это сообщение отредактировал(а) Alex - 29.3.2005, 11:53
PM   Вверх
Marriage
Дата 29.3.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



Код

 for slmaxb:= 0 to kmaski do
if copy(Trade, j, length(maski[slmaxb])) = maski[slmaxb] then
begin
inc(n); zz[n]:= slmaxb;
j:= j + length(maski[slmaxb]) - 1; Break;
end;


Значит условие выполняется в конце цыкли (или ранььше ..)


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Black_Joker
Дата 30.3.2005, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



1. Я перебираю веь массив записей,
но обрабатываю только те, которые более-менее подходят
2. Перебираю посимвольно строку-поле (Trade).
3. для каэдого символа из строки я проверяю на вхождение маски из maski[]
Если маска есть: запоминаю номер маски, перехожу на другой символ (смещаюсь на длину маски). Чтобы начать анализ с первой (нулевой) маски выхожу из внуьренего цикла (Break).
PM   Вверх
Coder
Дата 30.3.2005, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 5
Всего: 11



Black_Joker, лучше мало переменных, он постоянно, главное не пихать их в одни циклы дважды.
по первой проблеме- может дело в локальных переменых, ты какие используешь?

И еще попробуй поработать отладчиком, просмотри переменные на разных этапах - много вещей сразу откроется
PM MAIL   Вверх
Girder
Дата 30.3.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



for i:= 0 to maxb-1 do...

for j:= 0 to maxb-1 do...

for slmaxb:= 0 to kmaski-1 do...


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Black_Joker
Дата 31.3.2005, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



1. внутри ФОР нельзя изменять счетчик. Поэтому Вайл.

2. Как настроить простмотрщик? при пошаговом просмотре Вочер не работает. F7 работает до первого нажатия кнопки, далее как обычный RUN.

для контроля я использовал поля Мемо.
PM   Вверх
Coder
Дата 31.3.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 5
Всего: 11



Цитата(Black_Joker @ 31.3.2005, 13:20)
при пошаговом просмотре Вочер не работает. F7 работает до первого нажатия кнопки, далее как обычный RUN.

Да ну!?
В процессе пошагового выполнения при наведении курсора на интерисующую переменную должно появится ее значение.
Если тебе F7 не нравиться, установи курсор на строку начала твоей процедуры и нажми F4, Делфя дойдет до этой строки и перейдет на код, далее F7
PM MAIL   Вверх
Black_Joker
Дата 1.4.2005, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 9.11.2002
Где: Таганрог

Репутация: нет
Всего: нет



Заработало само собой.
Вчера просто взяло и заработало... (ни каких правок я не делал)

К чему бы это?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.