21.04.2018, 21:08
|
Прохожий
|
|
Регистрация: 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;
|