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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2009, 23:35   #1
V.OX
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 10
По умолчанию ошибка в DELPHI

PROject Project1.exe raised on exception class EAccessViolation with message 'Access violation at address 0040465E in module 'Project1.exe'. Write of address 7D566CEC'. Process stopped. Use Step or run to continue.

Выдаёт данную ошибку в цикле , первый раз проходит всё норм, при втором прохождении облом)

код, где ощибка

Код:
  sL:= TStringList.Create;
  sL.LoadFromFile(NAMEfile);
 for nomerstroki:=1 to kolvoto4ek-1 do
  begin
  c4et4ik:=19;
  TOK:=0;
  for i:=0 to 3 do
   begin
   s:=sL[nomerstroki*6+i+14];
   s1:='';
   for j:=1 to length(s) do
    begin
    if s[j]<>' ' then s1:=s1+s[j];
    if (s[j]=' ')or(j=length(s)) then     //<---здесь при проверке по 'щагам'                     выдаёт ошибку:
     begin
     plTOKOVf1[c4et4ik]:=strtofloat(s1);
     s1:='';
     c4et4ik:=c4et4ik-1;
     end;
    end;
   end;
...........
в ЛИСТ загружаю текст. файл, при первом проходе считывает информацию всё норм,
но при втором проходе должен считывать другую информацию но --ошибка;
кстати использую данную подпрограмму в другом месте но там один раз обращается и ошибки нету? не пойму(помогите
считывание в массив plTOKOV

Последний раз редактировалось mihali4; 21.12.2009 в 00:02.
V.OX вне форума Ответить с цитированием
Старый 20.12.2009, 23:56   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а трассировать пробывали?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2009, 23:58   #3
V.OX
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а трассировать пробывали?
при трассировки показывает место где вылезает ошибка; у меня же там показано в программе где //<----------

У нас принято оформлять код специальным тэгом - кнопочка "#".
Модератор

Последний раз редактировалось mihali4; 21.12.2009 в 00:01.
V.OX вне форума Ответить с цитированием
Старый 21.12.2009, 00:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я имел в виду построчное выполнение кода и использование точек останова...
и естественно смотреть значения переменных..особенно тех что ответственны за доступы к массивам(то есть определяющие номер элемента массива к которому надо обратится)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.12.2009, 02:50   #5
V.OX
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 10
По умолчанию

ребят подскажите что это значит??
Код:
  sL.FreeInstance;
sL--эт stringList

кстати помогло , но теперь выскакивает ошибка при закрытии))
раньше прописывал в конце просто
Код:
sL.free;

Последний раз редактировалось V.OX; 21.12.2009 в 02:53.
V.OX вне форума Ответить с цитированием
Старый 21.12.2009, 02:58   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Дружок, эту команду Борланд не разрешает использовать...
Она вызывается автоматически. Поэтому при ее вызове ошибочка и выскакивает...

З.Ы. Казалось бы - чего проще - поставить курсор на "FreeInstance", нажать F1 и прочитать (по-аглицки, правда...
но ведь программер - не программер, ежели "басурманского" не знает )

Последний раз редактировалось mihali4; 21.12.2009 в 03:00.
mihali4 вне форума Ответить с цитированием
Старый 21.12.2009, 03:21   #7
V.OX
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Дружок, эту команду Борланд не разрешает использовать...
Она вызывается автоматически. Поэтому при ее вызове ошибочка и выскакивает...

З.Ы. Казалось бы - чего проще - поставить курсор на "FreeInstance", нажать F1 и прочитать (по-аглицки, правда...
но ведь программер - не программер, ежели "басурманского" не знает )
тогда получается команда
Код:
sl.FreeInstance;
не вызывается чтоли???
ведь как я понял все проблемы заключались в этом stringLISTE??
Код:
sl.free
не помогало, вот я попробовал её и помогло хоть как то) теперь работает, но сошибкой при закрытии программы)
КСТАТи?? как убрать эту ошибку в конце?
или просто снести delphi и поставить другую, так как раннее с этой проблемой не сталкивался)
V.OX вне форума Ответить с цитированием
Старый 21.12.2009, 04:03   #8
V.OX
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 10
По умолчанию

ура ура ура ура разобрался в 4 утра)))))))
V.OX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка с БД в Delphi TaYgA БД в Delphi 5 10.10.2009 14:25
Ошибка Delphi Ruska882009 Помощь студентам 1 05.10.2009 12:39
[Delphi] ошибка... Рамик Помощь студентам 2 06.08.2009 14:10
ошибка в Delphi 6 Ms-dos4 Софт 7 26.08.2007 14:09