Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2018, 21:08
Taras2020 Taras2020 вне форума
Прохожий
 
Регистрация: 15.01.2018
Сообщения: 36
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Access violation - Delphi/RAD XE3+

Всем доброго времени суток.
Интересует вопрос: Не могу понять что за ошибку показывает Embarcadero® RAD Studio 10.1 Berlin.

То есть: запускаю программу нажимаю кнопку и появляется ошибка - access violation at address in module project1.exe. read of address FFFFFFFF.

На форме кнопка и код (Ошибку показал на прикрепленных картинках):
Код:
Var
 I,First:Integer;
 SLInS,S:String;
 SLIn,SLOut:TStringList;
 
 DictionaryArray: TArray<TPair<string, integer>>;
 DictionaryArrayItem: TPair<string, integer>;
 
 Dictionary : TDictionary<String,Integer>;
begin
  First:=4;
 
  Dictionary:= TDictionary<String,Integer>.Create;
 
  SLOut:=TStringList.Create;
 
  SLIn:=TStringList.Create;
  SLIn.LoadFromFile('Out.txt');
  SLIn.Delimiter:=' ';
  SLIn.DelimitedText:=SLIn.Text;
 
    For I:=0 to slIn.Count-1 do
      Begin
        SLInS:=slIn.Strings[i];
          if Pos(':',SLInS)<>0 Then delete(SLInS,1,Pos(':',SLInS));
 
          If Dictionary.ContainsKey(SLInS) then Dictionary[SLInS]:=Dictionary[SLInS]+1
          Else Dictionary.Add(SLInS,1);
      End;
 
 
  DictionaryArray := Dictionary.ToArray;
 
  TArray.Sort<TPair<string, integer>>(
    DictionaryArray, TComparer<TPair<string, integer>>.Construct(
      function (const Left, Right: TPair<string, integer>): Integer
      begin
        Result := CompareStr(Left.Value.ToString, Right.Value.ToString);
        if Result = 0 then
          Result := CompareStr(Left.Key, Right.Key);
      end));
 
 
      for I :=Length(DictionaryArray)-1 downto Length(DictionaryArray)-First do
       SLOut.add(Format('%s: %s',[DictionaryArray[i].Key,DictionaryArray[i].Value.ToString]));
 
  SLOut.SaveToFile('REZ.txt');
 
  Dictionary.Free;
  SLIn.Free;
  SLOut.Free;
end;
Изображения
Тип файла: bmp 1.bmp (1.19 Мбайт, 5 просмотров)
Тип файла: bmp 2.bmp (1.28 Мбайт, 3 просмотров)
Тип файла: bmp 3.bmp (630.4 Кбайт, 2 просмотров)
Ответить с цитированием
  #2  
Старый 22.04.2018, 08:29
Аватар для Guaho
Guaho Guaho вне форума
Начинающий
 
Регистрация: 27.08.2017
Сообщения: 173
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Возможно, где-то используется объект, параметры которого не определены. Найдите методом исключения место, где возникает проблема: после первой строки поставьте "exit", запустите. Если сработает - опускайтесь ниже, пока не вылезет ошибка. А лучше с середины начинать, всякий раз деля подозрительный участок кода exit-ом на две части - так быстрее будет.
Ответить с цитированием
Этот пользователь сказал Спасибо Guaho за это полезное сообщение:
Taras2020 (22.04.2018)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter