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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2018, 21:16   #1
kladsss
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 50
По умолчанию 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;
kladsss вне форума Ответить с цитированием
Старый 22.04.2018, 03:18   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Чей код спёр - к тому и обращайся. Если б ты его сам написал, то сообщил бы строку кода, где возникает исключение.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 22.04.2018, 12:33   #3
Turbine
Пользователь
 
Регистрация: 13.08.2008
Сообщений: 76
По умолчанию

Дд!
Во-первых, с Delete аккуратнее в Stringlistах
Turbine вне форума Ответить с цитированием
Старый 23.04.2018, 01:30   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
то сообщил бы строку кода, где возникает исключение
Это далеко не всегда возможно. И не зависит от того чей код.

Цитата:
Сообщение от Turbine Посмотреть сообщение
Во-первых, с Delete аккуратнее в Stringlistах
А где в коде ТС вы увидели Delete в Stringlistах?
northener вне форума Ответить с цитированием
Старый 23.04.2018, 06:01   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Это далеко не всегда возможно. И не зависит от того чей код.


А где в коде ТС вы увидели Delete в Stringlistах?
Код:
if Pos(':',SLInS)<>0 Then delete(SLInS,1,Pos(':',SLInS));
Shouldercannon вне форума Ответить с цитированием
Старый 23.04.2018, 08:12   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Это далеко не всегда возможно. И не зависит от того чей код.
Ты прикалываешься? Дебаггер на что?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.04.2018, 08:23   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
delete(SLInS,1,Pos(':',SLInS))
этот delete не имеет отношения к delete в стринглисте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый сервер и rad studio xe3 Pcrepair Общие вопросы Delphi 0 29.01.2018 19:40
Периодически Access violation в XE3 furstenberg Общие вопросы Delphi 9 28.06.2013 23:58
RAD XE3 и TChart Pcrepair Общие вопросы Delphi 5 31.05.2013 15:23
embarcadero rad studio xe3 и indigo Атютка Компоненты Delphi 13 28.05.2013 09:34
C++ Builder RAD XE3 Загрузка ресурсов taburetka C++ Builder 2 17.12.2012 01:27